【问题标题】:ASP.NET trigger update panel by _dopostbackASP.NET 通过 __dopostback 触发更新面板
【发布时间】:2013-05-16 23:44:06
【问题描述】:

我在更新面板中有一个 FormView,它们被包装在模式对话框(引导程序)中。

当用户点击“编辑”按钮,然后决定关闭对话框时,我需要通过回发将表单视图从“编辑”模式切换到“只读”模式。 所以我使用 javascript 来监听模态关闭事件,并调用:

javascript: __doPostBack("ctl00$MainContent$ClientInfoFormView$CancelBtn", ""); 

好吧,它确实触发了异步回发。

但是,页面冻结,所有 UI 都无法点击了!

请注意,如果我手动单击表单视图的“取消”按钮,它会执行异步回发并毫无问题地进入只读模式。

我用萤火虫查看回发数据并返回部分页面,它们看起来一样! 我一直在与这个问题作斗争 2 天没有任何线索。 单击“取消”按钮(执行相同的_dopostback 调用)和通过我的javascript 调用_dopostback 之间没有任何逻辑上的区别。

请帮忙! 谢谢

【问题讨论】:

  • 或许在 JS onclick 部分使用 e.preventDefault 会有所帮助。

标签: javascript asp.net updatepanel


【解决方案1】:

而不是

__doPostBack("ctl00$MainContent$ClientInfoFormView$CancelBtn", "");"

试试

document.getElementById('ctl00$MainContent$ClientInfoFormView$CancelBtn').click();

(确保您使用的是实际的按钮 ID)。有时使用 DOM 方法效果更好。

【讨论】:

  • 谢谢,我试过了,同样的效果,页面冻结。 formview 的取消按钮呈现为“Cancel。所以我必须指定正确的 ID,但同样,asyncpostback 成功,然后页面冻结。
  • 运气好能解决这个问题吗?有类似的问题。
  • @Hunter @chris 要尝试的另一件事是将代码放入 setTimeout 例如setTimeout("$get('ctl00$MainContent$ClientInfoFormView$CancelBtn').click()",10);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
相关资源
最近更新 更多