TabContainer正在抑制UpdatePanel的beginRequest和endRequest
TabContainer suppressing beginRequest and endRequest of UpdatePanel?
我在TabContainer中有一些控件,TabContainer在UpdatePanel中。我正试图用以下javascript恢复TabContainer内部面板的滚动位置:
var yPanel;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
yPanel = $get('ScrollPanel').scrollTop;
}
function EndRequestHandler(sender, args) {
$get('ScrollPanel').scrollTop = yPanel;
}
在Chrome中在这些控件上设置断点,我看到当TabContainer外部(和UpdatePanel内部)的控件激活回发时会触发BeginRequestHandler
和EndRequestHandler
,当按下TabContainer内部的按钮时会触发断点。但是,TabContainer中的任何其他控件(例如带有AutoPostBack="true"
的复选框)都会触发回发,但BeginRequestHandler
和EndRequestHandler
事件是而不是触发的。
我还将调试器连接到服务器上,并能够确认,当使用TabContainer外部的控件或TabContainer内部的按钮时,我得到了以下断点序列:
- BeginRequestHandler(客户端)
- Page_Load(服务器端)
- EndRequestHandler(客户端)
然而,当在TabContainer中使用其他控件时,我会得到以下断点序列:
- Page_Load(服务器端)
TabContainer是否在某个地方单独处理这些事件?为什么它们没有发生?
在我创建的一个小演示中发现这一点后,我开始计算我的香草演示和我的页面之间的差异。
导致这些事件未触发的关键区别,实际上也是导致这些事件不触发的区别,是在TabContainer及其选项卡上使用了ClientIDMode="Static"
。不幸的是,我不知道为什么ClientID是静态的会导致这个问题,但如果将来有人遇到类似的问题,这就是你想要注意的。只需将ClientIDMode
更改为默认的Inherit
或AutoID
,即可再次执行此操作并引发事件。
- 为什么可以'tI将IMG元素链接到类似于“;http://en.wikipedia.org/wiki/File:
- {lang:(?:da|en)}在Javascript中做什么
- 如何防止在快速单击时两次调用en事件处理程序
- TabContainer正在抑制UpdatePanel的beginRequest和endRequest
- 带状前缀 /en/
- 如何在根 webpack 文件夹之外有 en 条目
- 区别 2 日期 en JS.
- 主干路由器为 /en/#xyz 而不是 /#en/xyz
- 通过JS regex获取具有/en/的主机名
- 我怎么能把两个字符串与索引en点到Three.js BufferGeometry
- 使用jQuery在另一个窗口打开页面(简写pagina en otra ventana)
- 双ToString保持"en-US"格式
- Google API -将字符串翻译成EN语言:(
- Moment.js: does en locale应该以12小时格式显示时间