我有一个自制的工具栏控件,可以在一个地方使用,包括UpdatePanel和一个。它依赖于一些jQuery来设置它的按钮。它在其程序集中嵌入了自己的启动脚本。
我遇到的问题是当工具栏位于更新面板中时,启动脚本会在正确的时间运行。由于它是在更新面板标记的隐藏面板中声明的,因此在创建更新面板时会创建并加载它。但它实际上并没有呈现,直到用户做了一些事情并且隐藏的面板可见。
我想要的是每次更新面板刷新时启动脚本都会运行。 (理想情况下,如果工具栏可见,我只希望这样做,但如果必须的话,我将采取“每次刷新”。)但我希望工具栏在更新面板外部时仍能正常工作,当它需要时要做的是挂钩文档的.ready()处理程序。
鉴于工具栏无法从服务器端告知(据我所知)它是否在更新面板内,但是负责确保必要的javascript,我该如何实现?
感谢。
ETA:我在this question的答案中找到了答案。这适用于我的工具栏,无论是在更新面板中还是在更新面板之外。谢谢大家!
答案 0 :(得分:0)
如果我错了,请纠正我,但我认为UpdatePanel中的jQuery工具栏应该在每次更新updatepanel时执行。所以也许在服务器端你可以判断它是否是asyncpostback。如果是,那么你可以在更新面板中使用写一些javascript来执行。您可以使用加载到更新面板中的占位符的文字控件。有点像...
public void WebForm1_OnLoad(Object sender, EventArgs args){
if(ScriptManager.GetCurrent(Page).IsInAsyncPostBack){
var con = new LiteralControl("INSERT javascript here that would call jquery method");
this.placeHolder.Controls.Add(con);
}
}