我有一个ajax手风琴,每个窗格都包含一个updatepanel(动态创建)。我希望在单击窗格标题时刷新updatepanel,但没有单击事件。
我可以在标题中弹出一个按钮,并使用scriptmanager将其注册为异步触发器,但我不想要一个按钮,我希望整个标题成为触发器。
我看不到将div或标签设置为触发器的方法,因为它们没有服务器端点击事件。还有其他方法可以做到吗?
答案 0 :(得分:1)
使用jQuery。
语法将如下所示:
$('#myHeading').click(function(){
// Your code here
});
有时使用ASP.NET我必须使用通配符ID匹配,因为ASP.NET为您的元素创建了非常长的半随机客户端ID。您可以执行以下操作:
$('[id*="myHeading"]').click(function(){
// Your code here
});
基本上,您可以在DOM上选择任何内容,并使用jQuery为其附加事件处理程序。有时您必须使用选择器获得创意。
重要提示:如果您正在使用更新面板,并且要监视单击的标题位于该面板内,则需要在通过ajax加载/重新加载面板后将这些事件处理程序重新绑定到您选择的元素。这可以使用以下代码实现:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(panelLoaded);
function panelLoaded(sender, args){
$('[id*="myHeading"]').click(function(){
// Do something after there is a click
});
}