在updatepanel内部发出Linkbutton问题以使div可点击 [英] Linkbutton issue inside updatepanel to make div clickable

查看:75
本文介绍了在updatepanel内部发出Linkbutton问题以使div可点击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用linkbutton使整个div可以在updatepanel内点击..但是当我点击div整个它有回发..所以请帮助如何避免回发?



我尝试了什么:



< asp:UpdatePanel ID =UpdatePanel2UpdateMode =ConditionalChildrenAsTriggers =falserunat =server>

< triggers> < asp:AsyncPostBackTrigger ControlID =rptEmployer/>

< contenttemplate>

i have using linkbutton for making whole div clickable inside updatepanel..but when i click div whole it have postback.. so please help how to avoid postback?

What I have tried:

<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" ChildrenAsTriggers="false" runat="server">
<triggers> <asp:AsyncPostBackTrigger ControlID="rptEmployer" />
<contenttemplate>



< ; asp:TextBox ID =txtsearchCssClass =srchAutoPostBack =truerunat =serverplaceholder =Search EmployerOnTextChanged =txtsearch_TextChanged>

< asp:Repeater ID =rptEmployerOnItemCommand =rptEmployer_ItemCommandrunat =server>

< itemtemplate>

< asp:LinkBut​​ton ID =lb_emp_listStyle = text-decoration:none; CommandName =编辑runat =server>


<asp:TextBox ID="txtsearch" CssClass="srch" AutoPostBack="true" runat="server" placeholder="Search Employer" OnTextChanged="txtsearch_TextChanged">
<asp:Repeater ID="rptEmployer" OnItemCommand="rptEmployer_ItemCommand" runat="server">
<itemtemplate>
<asp:LinkButton ID="lb_emp_list" Style="text-decoration: none;" CommandName="Edit" runat="server">





<%#Eval(RowNumber)%>


<%# Eval("RowNumber") %>






税号:<%#Eval(EmployerTaxId)%>


<%#Eval(name)%>





Tax Id : <%# Eval("EmployerTaxId") %>

<%# Eval("name") %>




< asp:HiddenField ID =hdn_EmpTax_IdValue ='<%#Eval(EmployerTaxId )%>'runat =server/>

< asp:HiddenField ID =hdn_CompanyTax_IdValue ='<%#Eval(CompanyTaxID)%& gt;'runat =server/>


<asp:HiddenField ID="hdn_EmpTax_Id" Value='<%# Eval("EmployerTaxId") %>' runat="server" />
<asp:HiddenField ID="hdn_CompanyTax_Id" Value='<%# Eval("CompanyTaxID") %>' runat="server" />

















推荐答案

删除命令名称为CommandName =编辑里面< asp:linkbutton xmlns:asp =#unknown>,将其替换为OnClick =clientCallPostBack(),将ClientIDMode作为静态放在updatepanel上,在同一页面的客户端创建一个javascript函数,如下所示: br $>


< asp:updatepanel id =UpdatePanel2runat =serverclientidmode =Static>



Delete Command Name as "CommandName="Edit"" inside <asp:linkbutton xmlns:asp="#unknown">,replace it with "OnClick="clientCallPostBack()", put ClientIDMode as "Static" on updatepanel,Create a javascript function in same page's client side as below,

<asp:updatepanel id="UpdatePanel2" runat="server" clientidmode="Static">

<asp:LinkButton ID="lb_emp_list" Style="text-decoration: none;" OnClick="clientCallPostBack(); runat="server">





function clientCallPostBack(){



__doPostBack('<%UpdatePanel2.ClientID%>');

返回;

}





然后,在代码后面做一些事情,如下所示在Prerender阶段,



if(ScriptManager.GetCurrent(Page)。IsSasInAsyncPostBack)

{

var Target = Request.Params.Get(__ EVENTTARGET);

if(!String.IsNullOrEmpty(Target))

{

switch(Target )

{

caseUpdatePanel2:

//在这里做点什么............

休息;

}

}

}

请记住__doPostBack再次更新面板将设法调用Asyncpostback w ithout Postback。,因为你可以在jquery中做到在客户端文档准备好更容易链接按钮点击。



function clientCallPostBack(){

__doPostBack('<% UpdatePanel2.ClientID %>');
return;
}


Then,doing somethings at code behind as below at Prerender Stage,

if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack)
{
var Target = Request.Params.Get("__EVENTTARGET");
if (!String.IsNullOrEmpty(Target))
{
switch (Target)
{
case "UpdatePanel2":
//doing somethings here............
break;
}
}
}
Remember "__doPostBack" agains to updatepanel will manage to invoke Asyncpostback without Postback.,Of cause you can do it in jquery to document ready in client side for easier to Link Button click.


把ClientIdMode =Auto



Put ClientIdMode="Auto"

<asp:LinkButton ClientIdMode="Auto" ID="lb_emp_list" Style="text-decoration: none;" OnClick="clientCallPostBack(); runat="server">


这篇关于在updatepanel内部发出Linkbutton问题以使div可点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆