【问题标题】:How to share a C# Integer variable with JavaScript如何使用 JavaScript 共享 C# 整数变量
【发布时间】:2012-01-21 21:17:07
【问题描述】:

我想与 JavaScript 共享存在于 C# 服务器端的 currentTab 变量。这是我的代码:

C#:

public int currentTab = 1;

protected void Page_Load(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(Type.GetType("System.String"), "addScript", "showTab(" + currentTab + ");", true);
}

JavaScript:

var currentTab = "<%=currentTab%>";

function showTab(index)
{
    currentTab = index;
    // Show tab at (index)
}

我使用这种方法在 PostBack 上再次获取当前选项卡。但是,C# 上的 currentTabPostBack 之后仍然是 1。我该如何解决这个问题?

【问题讨论】:

    标签: c# javascript asp.net html variables


    【解决方案1】:

    您可以将 javascript 函数中的索引写入隐藏字段,然后在回发时读取。

    在您的代码中,您检查隐藏字段,如果您的页面是回发的。 像这样:

    protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                currentTab = Int32.Parse(HiddenTabValue.Value);
            }
    
        }
    

    【讨论】:

    • 在您的 Page_Load 中,您可以检查 IsPostback 是否为真。如果是真的,请执行您的回发逻辑。就像把 hiddenfield 的值解析成 int 一样。
    【解决方案2】:

    有一个服务器端hidden field 来保存这条信息。

    您可以通过 javascript 访问该字段,并且作为服务器端控件,该值将在服务器端可用。

    【讨论】:

      【解决方案3】:

      您需要使用一些服务器控件将值发送回服务器(即asp:HiddenField)或使用查询字符串在那里设置选项卡索引。

      【讨论】:

        猜你喜欢
        • 2018-03-23
        • 2014-04-20
        • 2012-07-04
        • 1970-01-01
        • 2017-09-16
        • 2017-11-16
        • 2016-06-24
        • 1970-01-01
        • 2023-03-17
        相关资源
        最近更新 更多