2016-05-13 8 views
0

ここは私のコードです。リストボックス(ホームページにあります)の値をテキストボックス(テキストボックスにあります)に渡したいと思います。リストボックスは、すべてではありません。リストボックスの値をASPの別のページに渡すときのトラブル:NET

protected void Button5_Click(object sender, EventArgs e) 
     { 

      for (int i = 0; i < ListBox1.Items.Count; i++) 
      { 
       allItems += ListBox1.Items[i].ToString() + "--"; 
       allItems.Substring(0, 2); 
       int m = allItems.Length - 2; 
       string mmm = allItems.Substring(0, m); 
       Response.Redirect("Statistics.aspx?ListBox1=" + mmm); 
      } 
     } 

と、これはあなたのコードに問題が発生した統計ページから

protected void Page_Load(object sender, EventArgs e) 
     { 
      TextBox3.Text = Request.QueryString["ListBox1"]; 
     } 
+0

は、データ量に依存し、特殊文字などを持っているあなたのリスト項目場合は、簡単にセッションにリストボックスを格納することができますし、他のページに転送する –

答えて

0
Response.Redirect("Statistics.aspx?ListBox1=" + mmm); 

ループの外側上の行を移動ジャンプ。 ループが完了したらリダイレクトする必要があります。

ただし、リストボックスの項目をループしている間に、数値のクエリーストリング値を作成する必要があります。 stringbuilderオブジェクトを使用します。あなたのループ内のStringBuilderを宣言しないでください

StringBuilder sbMMM = new StringBuilder(); 
MMM.append(allItems.Substring(0, m)); 

string mmm = allItems.Substring(0, m); 

は、ラインを交換してください。行がループの上にあることを確認してください。

編集のように読むためのResponse.Redirect:あなたはセッションを使用して値を取得することを好むはずです

Response.Redirect("Statistics.aspx?ListBox1=" + sbMMM.ToString()); 
+0

名前 'mmm'は現在のコンテキストに存在しません\tループの外側に移動するとこのエラーが発生します – dpointttt

+0

ループ内に宣言されています。ループの外側の先頭に宣言してください。 Put mmm = String.Empty;ループの上にmmmの前に 'string'という単語を削除してください。 –

+0

しかし、私の答えのようにstringbuilderを使用して文字列を作成してからクエリー文字列に追加する必要があります –

0

です。

ループ一度

関連する問題