首页 > 解决方案 > 更新面板不适用于按钮单击,单击 asp.net 中的按钮时会重新加载页面

问题描述

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="updatePanel2" runat="server" ChildrenAsTriggers="true">
        <ContentTemplate>
            <asp:Button ID="btnBlock" Text="BlockCalls" runat="server"
                OnClick="btnBlock_Click" Enabled="True" Width="100px" />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnBlock" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>

当我点击 btnBlock 页面加载时,甚至会触发。当用户单击按钮时,我不希望页面刷新

标签: asp.netupdatepanel

解决方案


您仍然总是会收到部分页面回发,并且每次使用更新面板都会触发页面加载事件 - 就像更新面板之外的任何按钮一样。

因此,对于第一页设置代码,您的页面加载事件应该具有 IsPostBack = false。

所以 IsPostBack=False 代码存根中的代码仅在第一次运行。

那么,虽然整个页面不会重新刷新,并且整个页面都不会重新发布?您仍然会得到所谓的“部分”页面回发 - 虽然只有面板内的内容被回发到服务器?标准表单事件仍然每次触发,包括页面加载。

您需要构建该页面来处理回发,并且更新面板的引入并不能解决此要求。

如果您的页面无法在回发后继续存在,那么它将无法处理更新面板。因此,更新面板不会阻止回发,但会导致我们称之为部分回发。

那么,假设您弹出一个 jQuery.UI(或引导程序)对话框,然后进行回发?然后,由于页面回发,该对话框将被炸毁。如前所述,更新面板仍然会进行回发,但不是整页,因此术语部分回发,因此任何服务器端按钮或该面板内部的任何回发?好吧,页面加载事件仍然每次都会触发。

那么,虽然一些 jQuery 和一些控件可以(并且将会)通过一个完整的页面回发来 zonkey?使用更新面板可以提供帮助吗?请记住,该更新面板中的服务器端事件仍会导致回发 - 只是不是整页的。


推荐阅读