【发布时间】:2011-10-30 19:07:43
【问题描述】:
我有一个自制的工具栏控件,它在多个地方使用,无论是在 UpdatePanel 中还是在一个地方之外。它依赖于一些 jQuery 来设置它的按钮。它在其程序集中嵌入了自己的启动脚本。
当工具栏位于更新面板中时,我遇到的问题是让启动脚本在正确的时间运行。由于它是在更新面板标记的隐藏面板中声明的,因此在创建更新面板时会创建并加载它。但它实际上并没有被渲染,直到用户完成了一些事情并且隐藏的面板变得可见。
我希望每次更新面板刷新时都运行启动脚本。 (理想情况下,我希望它只在工具栏可见的情况下才这样做,但如果必须的话,我会进行“每次刷新”。)但我希望工具栏在更新面板之外仍能正常工作,只要它需要要做的是挂钩到文档的 .ready() 处理程序。
鉴于工具栏无法从服务器端判断(据我所知)它是否在更新面板内,但它负责确保必要的 javascript,我该如何做到这一点?
谢谢。
ETA:我在this question 的答案中找到了答案。这适用于我的工具栏,无论它是在更新面板中还是在更新面板之外。谢谢大家!
【问题讨论】:
-
不确定这是否有帮助,但我认为您可以使用 ScriptManager.GetCurrent ( Page ).IsInAsyncPostBack 方法在服务器端判断您的更新面板是否导致回发。这对你有用吗?
-
@JasonTuran 嗯。也许吧,但从它的声音来看,它只会告诉我一个更新面板已经回传,而不是那个回传的面板是否是我控制的祖先。为此,我想我必须爬上 .Parent 属性的层次结构。不过谢谢!
标签: jquery asp.net updatepanel