从ASP.NET服务器端代码触发Jquery事件
本文关键字:Jquery 事件 代码 ASP NET 服务器端 | 更新日期: 2023-09-27 18:20:20
我有一个简单的启用JQuery的ASP.NET页面:
<script>
$(document).ready(function() {
$("#accordion").accordion();
});
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="accordion">
<h3><a id="Accordion1" href="#">Accordion Panel 1</a></h3>
<div>
A form input...
<asp:Button id="btnSubmit" runat="server" onclick="btnSubmit_Click" />
</div>
<h3><a id="Accordion2" href="#">Accordion Panel 2</a></h3>
<div>
Some content...
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
如果你注意到的话,我也在使用UpdatePanel。
btnSubmit_Click事件的作用如下:
protected void btnSubmit_Click(object sender, EventArgs e)
{
//Some MySql INSERT, etc.
}
现在我想做的是让服务器端btnSubmit_Click触发JQuery"点击"Accordion Panel 2(这样它就会打开Accordio Panel 2并关闭1)。如何做到这一点?
更新:对不起,伙计们,我忘了早些时候提到它有一个UpdatePanel
哦,好吧,我只是使用了"在回发后更改隐藏字段的值,然后让jquery读取该隐藏字段"的方法。谢谢大家!
Jquery:
var tag = $("#contentBody_hfTag1").val();
if (tag=="1") { $(".Accordion").accordion({ active: 1 }); }
else { $(".Accordion").accordion({ active: 0 }); }
.aspx
<asp:HiddenField ID="hfTag1" ClientIDMode="Predictable" Value="0" runat="server" />
C#
protected void btnMyButton_Click(object sender, EventArgs e)
{
hfTag1.Value = "1";
}
你不能。Jquery在客户端上运行,您的处理程序在服务器上。当页面在返回后重新加载时,您需要在客户端上触发事件。
您不能这样做,因为Jquery在客户端工作,在页面重新加载时从服务器端事件开始。手风琴的状态将失去。所以你可以做的是,你可以在Jquery AJAX调用中做同样的工作,而不是回发帖子。点击按钮做你想做的任何事情,然后关闭手风琴1并显示手风琴2。
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<i88:InlineScript runat="server">
<script type="text/javascript">
$('Accordion2').click()
</script>
</i88:InlineScript>
<asp:Button ID="cmd" runat="server" Text="Update" />
</ContentTemplate>
</asp:UpdatePanel>
您可以放入每次更新Panel时都会执行的inlineScript。您也可以使用jQuery.Trigger();用于其他活动。