2017-05-02 11 views
0

當前此方法在gridview2中顯示的只是在gridview1複選框中選中行的第一列,但我需要精確顯示所有列作爲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

碼到您的按鈕會低於

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(); 
     } 

還創建將存儲gridview1

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

    } 

細節一類這是你要實現自己只是示例代碼碼。

+0

沒有解決問題,它只會顯示gridview1中只檢查行的第一列,我想我需要做的是將值存儲在一個二維數組中,迭代gridview1的每一行來檢查它是否被檢查並且那麼水平存儲值,如果它是 可能與「if循環」內的'如果'? –

+0

但你的代碼在我的最後工作只是我已經改變了我提到的事情,GridView2就像

+0

我的gridview1有多列,在我的代碼中使用該方法列出了已檢查的行,但它只顯示第一列 –

相關問題