gpt4 book ai didi

javascript - 如何在我的 aspx 上调用带有条件更新面板的自定义控件 javascript?

转载 作者:行者123 更新时间:2023-11-29 15:30:42 25 4
gpt4 key购买 nike

我在呈现选项卡的地方创建了一个自定义控件。在选项卡控件的页面加载方法上,我使用以下方法:

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>

我点击了 Controller 的页面加载,并按预期获得了更新的 hdd 值,但它不会像我没有 updatePanel 时那样覆盖页面上的 js。

任何想法/建议或者解决方法?

干杯

最佳答案

当使用UpdatePanel 控件时,RegisterStartupScript 方法不起作用。要使其在 UpdatePanel 内部工作,请使用以下代码。这已经过测试,在我们的应用程序中运行良好。

ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "TestScript", "alert(1)", true);

关于javascript - 如何在我的 aspx 上调用带有条件更新面板的自定义控件 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35198832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com