2016-09-20 12 views
0

私はチェックボックスのリストから動的にチェックボックスを作成しました。このリストをセッションに保存し、チェックボックスのonChangeイベントでこのチェックボックスのリストをセッションから取得したいとします。 ここにコードがあります。javascript ASP.NETでセッションからオブジェクトのリストを取得するには?

public static List <CheckBox> chklist = new List <CheckBox>(); 
    void arrinit() { 
     for (int i = 0; i < 31; i++) { 
      //initializing list of checkboxes 
      chklist.Add(new CheckBox()); 
     } 
    } 
    void show() { 
     for (int i = 0; i < 30; i++) { 
      TableCell cell4 = new TableCell(); 
      tRow.Cells.Add(cell4); 
      ((IParserAccessor) cell4).AddParsedSubObject(chklist[i]); 
      chklist[i].ID = "cbx_" + i.ToString(); 
      string a = "processChechBox('" + "ctl00_ContentPlaceHolder1_" + chklist[i].ID + "'); return false;"; 
      chklist[i].Attributes.Add("onChange", a); 
      chklist[i].Attributes.Add("runat", "server"); 
     } 
     Session["chk"] = chklist; 
    } 

    function processChechBox(id) { 
     //here is the javascript function for checkbox onChange event 
     debugger; 
     var containerRef = document.getElementById(id); 
     var data = document.getElementById(id); 
     data.value = '1'; 
     data.checked = true; 
     var a = '<%= Session["chk"]%>'; 
    } 

var a = '<%= Session["chk"]%>'; この行は、代わりにこの機能がチェックすべてのチェックボックスに呼び出されたリスト processChechBox(id)System.Collections.Generic.List1[System.CheckBox]を返しています。

答えて

0

このライン

<%= Session["chk"]%> 

明らかにあなたがここに欲しいものではありません

Session["chk"].ToString() 

と同等のものを書き出します。ここで使われている 'var a'で何を達成するのですか? Pass C# ASP.NET array to Javascript array

+0

私はコピーしてあなたのコードとその私に与えて例外貼り付けます「呼び出しのターゲットが例外をスローしました」 を{} を、内側の例外がある: { "これは、操作にはIISの統合パイプラインモードが必要です。 "} – muhammad

+0

統合を使用するようにアプリケーションプールを変更すると、その理由がわからない場合があります。 –

0

以下のアプローチを試してみて、あなたがコンソールログに入ったかどうか確認する:

私の推測では、あなたが本当にこのような何か

<% var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); %> 
var jsVariable = <%= serializer.Serialize(((List<CheckBox>)Session["chk"]).ToArray()) %>; 

の功績をしたいです。

function processChechBox(id) { 
//here is the javascript function for checkbox onChange event 
debugger; 

var containerRef = document.getElementById(id); 
var data = document.getElementById(id); 
data.value = '1'; 
data.checked = true; 

var list = <%= new JavaScriptSerializer().Serialize(Session["chk"]) %>; 
console.log(list); 

}

関連する問題