【问题标题】:Postback Problems by using UpdatePanel使用 UpdatePanel 的回发问题
【发布时间】:2015-05-26 09:33:44
【问题描述】:

我在母版页上使用了 Asp UpdatePanel 来停止回发。但是现在在其他页面上出现了 Create 问题,比如点击按钮时在 gridview 中获取数据。

<asp:UpdatePanel runat="server" ID="updatePanle1">
    <ContentTemplate>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1"  runat="server">
        </asp:ContentPlaceHolder>
    </ContentTemplate>
</asp:UpdatePanel>

【问题讨论】:

  • 为所有会导致回发的控件添加Triggers

标签: c# asp.net updatepanel master-pages


【解决方案1】:

试试这个代码。

protected void Page_Load(object sender, EventArgs e)
{
       if (!IsPostBack)
        {
            GridviewBind();
        }
}


<asp:UpdatePanel ID="updatepnl" runat="server">
   <ContentTemplate>
        ---Put Your Grid View Code---
    </ContentTemplate>
       <Triggers>
            <asp:PostBackTrigger ControlID="btnSubmit" />      
        </Triggers>
</asp:UpdatePanel>

【讨论】:

    【解决方案2】:

    您可以尝试在您的UpdatePanel 设计代码中添加Triggers,以阻止其他导致回发的事件,包括按钮点击和其他事件。试试这样的:

     <Triggers>        
            <asp:AsyncPostBackTrigger ControlID="Button1" EventName="clickEvent" />    
     </Triggers>
    

    您也可以尝试在此处使用PostBackTrigger 而不是AsyncPostBackTrigger,以防万一它没有按预期工作。

    <Triggers>        
            <asp:PostBackTrigger ControlID="Button1" EventName="clickEvent" />    
     </Triggers>
    

    希望这会有所帮助。

    【讨论】:

    • 但是我必须在每个页面上使用的触发器没有适用于整个应用程序的简短方法
    • 这是使用UpdatePanel的缺点之一。据我所知,可能没有一个解决方案。除非您有大量控件,否则这应该不是很多工作。
    【解决方案3】:

    我们通常不会使用更新面板来防止整个 asp.net 网站重新加载页面/回发。客户端控件(jquery)仍然是最合适的。但如果你真的很好奇,你可能想花时间学习这个 MSDN 链接https://msdn.microsoft.com/en-us/library/bb398864%28v=vs.140%29.aspx

    中的课程

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-21
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多