.NET UpdatePanel + LiveQuery

时间:2010-09-08 13:55:02

标签: asp.net jquery updatepanel livequery

我使用LiveQuery来检测元素何时添加到页面中。该元素位于.NET AJAX UpdatePanel中。刷新UpdatePanel时,实时查询不会检测到新元素。

        <asp:UpdatePanel runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="refresh" />
        </Triggers>
        <ContentTemplate>
            <a id="but1" href="#">Button 1</a> 
        </ContentTemplate>
    </asp:UpdatePanel>


 $('#but1').livequery(function(event) {
        alert('Button added');
    });

警报仅在首次加载页面时触发。不是在刷新udpatepanel时。

2 个答案:

答案 0 :(得分:0)

Live Query仅在通过jQuery DOM操作机制进行更改时才会看到您的更改。在this answer类似的问题中,我努力解决这个问题,并建议采用基于投票的解决方法。

答案 1 :(得分:0)

尝试将jquery代码包装在pageLoad中,如下所示:

function pageLoad()
{
    $(document).ready(function () {
        $('[id$=but1]').livequery(function(event) {
            alert('Button added');
        });
    });
}

您需要在ScriptManager标记中添加EnablePageMethods =“true”:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />