我有一个最初加载下拉列表的网页。从列表中选择项目时,会在更新面板异步回发期间动态创建 Web 表单。
我在一些文本框中添加了水印扩展器,但第一次更新页面时水印不显示。如果我将注意力集中在其中一个文本框内,然后再从其中一个文本框中移出,水印就会出现并且似乎可以正常工作。通过检查源代码,我看到客户端创建的水印被附加到客户端上 Sys.Application 的 init 事件中。
这就是我感到困惑的地方。1. 我在客户端页面 Sys.Application.initialize 事件中添加了一个处理程序,以查看它是否在异步回发的生命周期中被调用。它似乎没有触发该事件。2. 我试图通过向 PageRequestManager End Request 方法添加一个处理程序来引发初始化事件,但是设置了检查页面是否已经初始化的标志,因此没有一个单独的处理程序被触发。3. 在 1 和 2 之后,我认为当我对它应用焦点时,水印扩展器可能会以某种方式被延迟加载。所以我把应该在初始化事件中执行的$create语句放在PageRequestManager的End Request事件中。客户端脚本引发错误,因为显然已经创建了水印扩展器。
除了编写我自己的水印代码之外,我不确定这里的分辨率是什么。这是一个限制吗(如果在页面的初始请求中创建扩展器,扩展器是否才能正常工作)?那么 init 事件呢?我看不到它触发,但如果扩展器已经创建,它一定有???
任何帮助,将不胜感激。谢谢。