ASPX Pop-Up首次点击触发页面重载,二次点击才显示问题求助
问题解决:ASPX按钮首次点击重载,第二次才弹出弹窗
问题原因
你的代码是在按钮的服务器端点击事件中设置OnClientClick属性:
- 首次点击按钮时,按钮还未绑定客户端点击事件,会触发服务器回发,执行
btn_Click方法给按钮添加上客户端事件后页面重载 - 第二次点击时,按钮已带有客户端点击事件,
return false会阻止服务器回发,直接执行弹窗脚本
解决方案
方案1:直接在前端设置客户端点击事件
在ASPX页面的按钮标签中直接添加OnClientClick属性,无需依赖服务器端事件:
<asp:Button ID="btn" runat="server" Text="弹出弹窗" OnClientClick="javascript:openModalPopUpWindow('PopUp.aspx','rwPopUp'); return false;" />
页面加载完成后按钮就带有客户端点击事件,首次点击即可触发弹窗,不会触发页面重载。
方案2:在页面初始化阶段设置客户端点击事件
如果需要通过后台代码设置,在Page_Load(或页面初始化事件)中完成,而非按钮的点击事件:
protected void Page_Load(object sender, EventArgs e) { // 仅在首次加载页面时设置,避免重复绑定 if (!IsPostBack) { btn.OnClientClick = "javascript:openModalPopUpWindow('PopUp.aspx','rwPopUp'); return false;"; } }
这样页面首次加载时就给按钮绑定好客户端事件,点击时直接执行弹窗脚本,不会触发服务器回发。
内容的提问来源于stack exchange,提问作者Aravind Suresh
相关产品推荐
相关产品推荐

