如何在我的 aspx 上使用条件更新面板调用自定义控件 javascript
本文关键字:更新 调用 javascript 自定义控件 条件 我的 aspx | 更新日期: 2023-09-27 18:33:07
我创建了一个自定义控件,用于呈现选项卡。在选项卡控件的页面加载方法上,我使用以下方法:
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
StringBuilder str = new StringBuilder();
str.Append("Sys.Application.add_load(pageLoad);");
str.Append("function pageLoad(event, args) {");
str.AppendFormat("$('"#{0}'")", this.ClientID);
str.Append(".tabs({ beforeActivate: function(e,ui) {");
str.Append(CustomJSInSelectedTab);
str.Append(GetSetSelectedTabIndexScript());
str.Append("},");
str.Append(String.Format("active: {0}", indexOf(_hdnSelectedTabId.Value)));
str.Append("});");
str.Append("}");
ScriptUtility.RegisterStartupScript(this.Page, "_INITTABS", str.ToString());
}
private int indexOf(string p) {
if (string.IsNullOrEmpty(_hdnSelectedTabId.Value))
return 0;
int i = 0;
foreach (FlowTabItem t in Tabs)
{
string id = t.ControlID;
if (id.Equals(p))
return i;
i++;
}
return 0;
}
此代码的目的是在发生回发后使所选选项卡保持不变。这在普通的aspx页面上工作正常,但是如果我有这种更新面板
<asp:UpdatePanel ID="up1" runat="server" ChildrenAsTriggers="false" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
...
</ContentTemplate>
</asp:UpdatePanel>
我命中了控制器的页面加载,并按预期获得了更新的 hdd 值,但它不会像我没有 updatePanel 时那样覆盖页面上的 js。
任何想法/建议或工作轮
?干杯
使用 UpdatePanel
控件时,RegisterStartupScript
方法不起作用。要使其在内部工作UpdatePanel
请使用以下代码段。这已经过测试,在我们的应用程序中工作得很好。
ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "TestScript", "alert(1)", true);
也许这不是你想要的,但你可以从中获得好的想法:自定义控件中的 UpdatePanel 和 ClientScript