FineUI 官方论坛

标题: 通过客户端脚本关闭窗口的按钮需要设置EnablePostBack [打印本页]

作者: 李明海    时间: 2013-10-31 18:04
标题: 通过客户端脚本关闭窗口的按钮需要设置EnablePostBack
[attach]3546[/attach] 在IE9下,点击关闭就报错,
  1.   protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.            
  4.                 if (!IsPostBack)
  5.                 {
  6.                   
  7.                     btnClose.OnClientClick = ActiveWindow.GetHideReference();
  8.                 }
  9.         }
复制代码
  1. protected void btnSave_Click(object sender, EventArgs e)
  2.         {
  3.          
  4.                     PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
  5.               
  6.          
  7.         }
复制代码




作者: sanshi    时间: 2013-11-1 09:41
我调试了一下,这个不是BUG。不过是个很好的案例,常会遇到:

在后台设置了关闭按钮的客户端点击事件:
  1. btnClose.OnClientClick = ActiveWindow.GetHideReference();
复制代码


则前台要为按钮添加 EnablePostBack="false",阻止点击按钮回发页面。



==============================================================================
否则,会为按钮生成如下JS代码:
  1. Ext.create('Ext.button.Button', {
  2.     x_state: x4_state,
  3.     id: "Panel1_Toolbar1_btnClose",
  4.     text: "关 闭",
  5.     cls: " x-btn-text-icon",
  6.     icon: "/icon/system_close.gif",
  7.     handler: function () {
  8.         (function () {
  9.             var aw = X.wnd.getActiveWindow();
  10.             if (aw) {
  11.                 aw[0].x_hide();
  12.             }
  13.         })();
  14.         X.disable('Panel1_Toolbar1_btnClose');
  15.         __doPostBack('Panel1$Toolbar1$btnClose', '');
  16.     }
  17. })
复制代码

在执行到 X.disable 时,当前页面已经关闭了,自然找不到 X 对象,就报错了。
作者: 李明海    时间: 2013-11-1 10:15
谢谢,明白了。搞定!!




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4