在updatepanel内部发出Linkbutton问题以使div可点击 [英] Linkbutton issue inside updatepanel to make div clickable
问题描述
我使用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:LinkButton 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屋!