我使用div作为图像按钮,因为ASP Imagebutton无论如何都会导致点击闪烁。
Div点击引发服务器端事件以绑定网格,它运行良好。只是整个页面加载。为了不这样做,我试图将它作为触发器。
现在,它给出了错误 -
'div1通过RegisterAsyncPostBackControl或 RegisterPostBackControl必须实现 InamingContainer,IpostBackDataHandler或IpostbackEventHandler'
ASPX:
<div id="div1" runat="server" class="search"></div>
<asp:UpdatePanel runat="server" updatemode="conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="divSearch" EventName="Click"/>
</Triggers>
<ContentTemplate>
<asp:gridview....../>
</ContentTemplate>
</asp:UpdatePanel>
C#:
public partial class Home: System.Web.UI.Page, IPostBackEventHandler
{
protected void Page_Load(object sender, EventArgs e)
{
div1.Attributes["onclick"] = ClientScript.
GetPostBackEventReference(this, "div1_Click");
}
protected void div1_Click()
{
bindGrid();
}
public void RaisePostBackEvent(string eventArgument)
{
if (!string.IsNullOrEmpty(eventArgument))
{
if (eventArgument == "div1_Click")
{
div1_Click();
}
}
}
}
任何使这项工作的方法?
答案 0 :(得分:0)
你可以在更新面板内添加一个asp按钮,这个按钮带有css属性display = none,点击div上的jquery,触发asp按钮点击。
<div id="jqmCollapsibleDiv" data-role="collapsible">
<h3>Title</h3>
<asp:UpdatePanel runat="server" ID="UpdatePannel1">
<ContentTemplate>
<%-- Update pannel content --%>
<div style="display: none">
<asp:Button runat="server" ID="btnTrigger" OnClick="btnTrigger_Click" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
jquery代码
$("#jqmCollapsibleDiv").collapsible({ expand: function (event, ui) { $("#btnTrigger").click(); } });
如果您不使用jquery mobile collapsible并使用简单的html div,请将tabindex添加到div,并使用click事件:
$('#simpleHtmlDiv').click(function (){
$("#btnTrigger").click();
});