2011-12-16 13 views
3

currentTab変数をC#とJavaScriptの間で共有したいと思います。ここに私のコードは次のとおりです。C#とJavaScriptの間で変数を共有する方法は?

の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) 
} 

私はポストバックに再び現在のタブを表示するには、このアプローチを使用していました。しかし、C#のcurrentTabPostBackの後には1のままです。どうすればこの問題を解決できますか?

答えて

2

あなたはのHiddenFieldに、あなたのjavascript関数からインデックスを作成し、その後、ポストバックでそれを読むことができます。あなたのコードで

あなたのページがポストバックであれば、あなたは、のHiddenFieldを確認してください。同様 はそう:

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

    } 
+0

ポストバックで読む方法申し訳ありませんが、初めてasp.netを使用します –

+0

Page_Loadでは、IsPostbackがtrueであるかどうかを確認できます。それが真であれば、ポストバックロジックを行います。 hiddenfieldの値をint型に解析するのと同じように。 – Nicolai

+0

+1ありがとう、それは動作します:) –

2

は、情報のこの部分を保持するために、サーバー側hidden fieldを持っています。

あなたは値が利用可能なサーバ側になりますJavaScriptとサーバー側の制御などを通じてフィールドにアクセスすることができます。

+0

+1ありがとうございました:) –

1

あなたは戻って、サーバ(すなわちasp:HiddenField)に値を送信したり、そこにタブインデックスを設定するには、クエリ文字列を使用するために、いくつかのサーバーコントロールを使用する必要があります。

+0

+1ありがとうございました:) –

関連する問題