asp.net:将updatepanel中的控件排除在执行异步回发之外

时间:2010-12-08 07:41:49

标签: asp.net asp.net-ajax

我在用户控件的页面关联js文件的异步回发之后在更新面板中放置了一个用户控件,这样就没有任何方法可以在另一个单词中从updatepanel中排除控件我不想发布用户控制。

<asp:UpdatePanel ID="upPnlAnswerList" runat="server">
    <ContentTemplate>
                       // another code that required to placed inside updatepanel

                         <div id="miancontainer" class="containerr"           
                            <klmsuc:Share ID="shareUserControl" runat="server" />

                       // another code that required to placed inside updatepanel



                    </div>

3 个答案:

答案 0 :(得分:12)

使用PostBackTrigger执行排除,而不必指定大量包含。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <asp:LinkButton ID="lnkExport" runat="server" OnClick="lnkExport_Click" Text="Export Data"></asp:LinkButton>
    </ContentTemplate>
    <Triggers>
          <asp:PostBackTrigger ControlID="lnkExport" />
    </Triggers>
</asp:UpdatePanel>

答案 1 :(得分:0)

设置UpdateMode = Conditional并为UpdatePanel提供独占触发器。

请参阅: http://msdn.microsoft.com/en-us/library/bb386454.aspx

答案 2 :(得分:0)

你必须在代码后面和右边的事件中添加一些控件,并将其注册为排除(postback)而不是AsyncPostBack,这是一个ajax调用。

<强> ScriptManager.GetCurrent(本).RegisterPostBackControl(btnAdd);

https://stackoverflow.com/a/23036830/184572

protected void grdExpense_RowCreated(object sender, GridViewRowEventArgs e)
    {
        LinkButton btnAdd = (LinkButton)e.Row.Cells[0].FindControl("btnAdd");
        if (btnAdd != null)
        {
            ScriptManager.GetCurrent(this).RegisterPostBackControl(btnAdd);
        }

    }

寻找另一个排除网格视图中所有控件的类似页面

http://www.aspsnippets.com/Articles/Assign-PostBack-Trigger-Full-PostBack-for-LinkButton-inside-GridView-within-AJAX-UpdatePanel-in-ASPNet.aspx

private void RegisterPostBackControl()
{
    foreach (GridViewRow row in GridView1.Rows)
    {
        LinkButton lnkFull = row.FindControl("lnkFull") as LinkButton;
        ScriptManager.GetCurrent(this).RegisterPostBackControl(lnkFull);
    }
}