我有一个ajax accordion,每个窗格都包含一个updatepanel (动态创建)。我希望在单击窗格的标题时刷新updatepanel,但没有单击事件。
我可以在头部弹出一个按钮,并使用scriptmanager将其注册为异步触发器,但我不想要按钮,我希望整个头部都是触发器。
我看不到将div或标签设置为触发器的方法,因为它们没有服务器端点击事件。有没有其他方法可以做这件事?
发布于 2009-11-28 00:35:57
使用jQuery。
语法将非常简单,如下所示:
$('#myHeading').click(function(){
// Your code here
});有时使用ASP.NET时,我不得不使用通配符ID匹配,因为ASP.NET会为您的元素创建非常长的半随机客户端ID。您将执行类似以下操作:
$('[id*="myHeading"]').click(function(){
// Your code here
});本质上,您可以选择DOM上的任何内容,并使用jQuery将事件处理程序附加到它。有时你必须对选择器进行创造性的操作。
重要提示:如果您正在使用updatepanel,并且您想要监视单击的标题位于该面板内,则需要在通过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
});
}https://stackoverflow.com/questions/1809587
复制相似问题