2009-11-27 89 views
0

我有一个ajax手风琴,每个窗格包含一个updatepanel(动态创建)。我想在点击窗格标题时刷新updatepanels,但没有点击事件。如何获得ajax手风琴的点击事件? asp.net

我可以在标题中弹出一个按钮,并使用scriptmanager注册为异步触发器,但我不想要一个按钮,我希望整个标题都是触发器。

我看不到将div或标签设置为触发器的方法,因为它们没有服务器端单击事件。有其他方式可以做到吗?

回答

1

使用jQuery。

的语法是那么容易,因为以下几点:

$('#myHeading').click(function(){ 
    // Your code here 
}); 

有时与ASP.NET我有,因为ASP.NET为你的元素创建很长的半随机的客户方ID的使用通配符ID匹配。你会做类似如下:

$('[id*="myHeading"]').click(function(){ 
    // Your code here 
}); 

本质上,你可以选择任何东西在DOM上,并附加一个事件处理程序与jQuery。有时你必须对选择器有创意。

重要提示:如果您使用的是更新面板,并且您希望监控点击的标题位于该面板内,则需要通过以下方式将这些事件处理程序重新绑定到要在面板加载/重新加载后选择的元素阿贾克斯。这可以使用以下代码来实现:

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 
    }); 

}