我有一个ajax手风琴,每个窗格都包含一个updatepanel(动态创建)。我希望在单击窗格标题时刷新updatepanel,但没有单击事件。

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

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

有帮助吗?

解决方案

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

}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top