2017-05-02 7 views
0

現在、このメソッドはgridview2に表示されています。gridview2チェックボックスでチェックされた行の最初の列だけですが、すべての列を正確に表示する必要がありますgridview1として、どうすればいいですか?あなたのボタンのへgridview1からgridview2へのチェック行の転送方法(両方とも同じページにあります)

protected void Button1_Click2(object sender, EventArgs e) 
{ 
List<string> lista = new List<string>(); 

    for (int i = 0; i < GridView1.Rows.Count; i++) 
     { 
      CheckBox chbox = GridView1.Rows[i].Cells[0].FindControl("chk") as CheckBox; 
      if (chbox.Checked == true) 
     { 
      lista.Add("'" + GridView1.Rows[i].Cells[1].Text + "'"); 
     } 
     } 

    DataTable dt = new DataTable(); 

    GridView2.DataSource = lista; 
    GridView2.DataBind(); 
} 

答えて

0

コードは、これはあなたがあなた自身を実装する必要がただのサンプルコードでもgridview1

public class CopyGrid 
    { 
     public string Name; 
     public string Email; 
     public string City; 
     public string PostCode; 

    } 

の詳細情報を格納する1クラスを作成

protected void Button1_Click2(object sender, EventArgs e) 
     { 
      List<CopyGrid> lista = new List<CopyGrid>(); 

      for (int i = 0; i < GridView1.Rows.Count; i++) 
      { 
       CheckBox chbox = GridView1.Rows[i].Cells[0].FindControl("chk") as CheckBox; 
       if (chbox.Checked == true) 
       { 
        CopyGrid content = new CopyGrid(); 
        content.Name = GridView1.Rows[i].Cells[1].Text; 
        content.Email = GridView1.Rows[i].Cells[2].Text; 
        content.City = GridView1.Rows[i].Cells[3].Text; 
        content.PostCode = GridView1.Rows[i].Cells[4].Text; 
        lista.Add(content); 
       } 
      } 

      //  DataTable dt = new DataTable(); 

      GridView2.DataSource = lista; 
      GridView2.DataBind(); 
     } 

の下になりますコード。

+0

グリッドビュー1にチェックされた行の最初の列だけを表示し続けます。値を2次元配列に格納し、gridview1の各行を繰り返しチェックし、 の場合は値を水平に格納することができます。 –

+0

あなたのコードは私の最後で働いています。私が言及した変更点があり、GridView2は

+0

です。私のコードのそのメソッドでは、チェックされた行が表示されていますが、最初の列は –

関連する問題