asp.net - 更新面板不适用于按钮单击,单击 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 页面加载时,甚至会触发。当用户单击按钮时,我不希望页面刷新
解决方案
您仍然总是会收到部分页面回发,并且每次使用更新面板都会触发页面加载事件 - 就像更新面板之外的任何按钮一样。
因此,对于第一页设置代码,您的页面加载事件应该具有 IsPostBack = false。
所以 IsPostBack=False 代码存根中的代码仅在第一次运行。
那么,虽然整个页面不会重新刷新,并且整个页面都不会重新发布?您仍然会得到所谓的“部分”页面回发 - 虽然只有面板内的内容被回发到服务器?标准表单事件仍然每次触发,包括页面加载。
您需要构建该页面来处理回发,并且更新面板的引入并不能解决此要求。
如果您的页面无法在回发后继续存在,那么它将无法处理更新面板。因此,更新面板不会阻止回发,但会导致我们称之为部分回发。
那么,假设您弹出一个 jQuery.UI(或引导程序)对话框,然后进行回发?然后,由于页面回发,该对话框将被炸毁。如前所述,更新面板仍然会进行回发,但不是整页,因此术语部分回发,因此任何服务器端按钮或该面板内部的任何回发?好吧,页面加载事件仍然每次都会触发。
那么,虽然一些 jQuery 和一些控件可以(并且将会)通过一个完整的页面回发来 zonkey?使用更新面板可以提供帮助吗?请记住,该更新面板中的服务器端事件仍会导致回发 - 只是不是整页的。
推荐阅读
- game-physics - 碰撞无法使用 Aframe 1.2.0 和 Ammo.js
- ios - 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[MyCoordinator menuTapped:]:无法识别的选择器发送到实例
- laravel - 函数 Illuminate\\Database\\Query\\Builder::join() 的参数太少,传入 1
- vue.js - NuxtJs 表单 - 在表单中使用 v-model 时部分关闭
- python - Jupyter notebook 禁用或更改密码
- python - 使用python分析excel中的数据
- rabbitmq - 从 rabbitmq 检索未确认的消息
- c# - 在 Mono for MacOS 上使用 MSAL 检索授权令牌
- animation - 如何让你的机器人发送动画消息(如 dank memer 的 Hack 命令)
- join - d3.js 使用 selection.join 链接多个转换