2016-07-22 6 views
3

スクリプトでセッションを設定しました。コードビハインドでセッション変数にアクセスする方法

<script> 
    $(document).on('click', '.Pagination', function() { 
     '<%Session["Pagination"] = "' + $(this).attr('id') + '"; %>'; 
     alert('<%=Session["Pagination"] %>'); 
    }); 
</script> 

アラートが機能します。

私が欲しいとき、私は私が使用したコードビハインド

if (!string.IsNullOrEmpty(Session["Pagination"] as string)) 
{ 
    string Val = Session["Pagination"].ToString(); 
    Session["Pagination"] = null; 
} 

文字列ヴァル '+ $(この).ATTR(' ID ')+' に等しい

答えて

1

からセッションにアクセスすることはできませんこの方法、もう1つは嘆願は私に

JavaScript関数を伝える良い方法を持っている場合は、それを実行します。後ろの

<script> 
    $(document).on('click', '.Pagination', function() { 
     PageMethods.NumPagination($(this).attr('id')); 
    }); 
</script> 

コード:

[System.Web.Services.WebMethod] 
public static string NumPagination(string Num) 
{ 
    Page Pagination = new Page(); 
    Pagination.Session["Pagination"] = Num; 
    return Num; 
} 

if (!string.IsNullOrEmpty(Session["Pagination"] as string)) 
{ 
    string Select = "1"; 
    Select = Session["Pagination"].ToString(); 
    Session["Pagination"] = null; 
} 

LINK

0

あなたは、クライアント側のコード内から(サーバー側)セッションに書き込むことはできません。

alert('<%=Session["Pagination"] %>');は、サーバー側で最初に実行され、Session["Pagination"]という値を読み込み、そのソースをブラウザに送信する前にjavacriptソースに挿入するために機能します。

ブラウザがそのテキストを見てJavaScriptと解釈するまでに、サーバ側コマンド(<% ... %>)が置き換えられました。ブラウザはとにかくそれらと何をするべきか分からない。

1

私は隠し変数に値を入れていましたが、これはコードビハインドでアクセス可能です。とにかく、セッションオブジェクトはコードの中でアクティブになっていますので、変数をセッションに正常に設定できます。

利点: グローバルに宣言セッションの文字列はコードビハインドでアクセス可能であり、あなたは、プロパティファイルに

を呼び出すことで、変数を使用することができますASP

<asp:HiddenField id="session_obejct" runat="server" /> 

Javascriptを

document.getElementById('session_obejct').value = "Variable you want to set in session"; 

C#

session["SESSION_NAME"] = session_obejct.Value; 

あなたは同様に他の方法を使用することができ、私はこれはあなたの要件を満たすことを願っています

関連する問題