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

标签 javascript c# jquery asp.net

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

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/

相关文章:

javascript - 性能:jQuery remove() 与 JavaScript removeChild()

c# - 迭代数组并将强类型添加到列表中

javascript - 代码内部变量的问题

jquery - ASP.NET MVC3 : Datetimepicker wont work

javascript - Safari 不触发表单提交

javascript - 如何使用vue将对象传递给select中的方法?

javascript - 如何调用对象内部的特定函数?

c# - 无法通过 Wifi 从 Android 应用程序访问另一台机器中存在的图像文件夹

javascript - css/div - 定位 div 的顶部、左侧、右侧、底部和中心,仅填充 _visible_ 页面

c# - 在 Metro 应用程序 C# 中重新加载页面