2013-01-23 22 views
1

各位程序員您好,如何獲取各個選中的複選框的行然後寫出值?

現在我有一個網頁,通過網格視圖顯示數據表。這工作正常。我還在視圖的開頭插入了一列複選框。這工作也很好。但是,當我嘗試從其各個複選框被選中的行中的單元格中檢索信息時,我得到一個空字符串。

下面是我的代碼有關這個問題的部分:

的.aspx:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Page.IsPostBack) 
     { 
      return; 
     } 
     else 
     { 

     } 

     //server connections and whatnot// 

     OleDbCommand c0 = new OleDbCommand(sql0, myConnection); 
     myAdapter.SelectCommand = c0; 
     DataSet ds0 = new DataSet("Contacts"); 
     myAdapter.Fill(ds0); 
     DataTable dt0 = new DataTable(); 
     dt0 = ds0.Tables["Contacts"]; 
     DataView view = new DataView(); 
     view.Table = dt0; 
     GV0.DataSource = view; 
     GV0.DataBind(); 

     myConnection.Close(); 
    } 

的.cs:

/** 
    * WHY U NO WORK?! 
    */ 
    public void Dedupe(Object o, EventArgs e) 
    { 
     String output = "start "; 
     foreach (GridViewRow row in GV0.Rows) 
     { 
      CheckBox cb = (CheckBox)row.FindControl("CheckBox1"); 
      if (cb.Checked == true) 
      { 
       output += row.Cells[1]; 
      } 
     } 
     Label1.Text = output; 
    } 

任何幫助將不勝感激。

乾杯

+0

你可以發佈你用來綁定控件的代碼嗎?我想知道你是否重印回發控件。如果是這樣,那將會阻止您看到對控件所做的任何更改。 – rsbarro

+0

@rsbarro當我嘗試在PageLoad方法中綁定CheckBox1時,它說它沒有在此上下文中聲明。 –

+0

'GV0'如何獲取其數據?我假設'GV0.DataSource =某事; GV0.DataBind();'?你可以發佈那種方法嗎? – rsbarro

回答

0

只是一個想法,但在你的foreach循環,您可能需要檢查您遍歷當前行的行類型屬性,並確保它被設置爲DataRow中。或者你可以使用一個LINQ語句來只帶有RowType == DataRow的行,並循環遍歷它。

UPDATE這是我的意思的快速樣本。但在審查你的代碼時,你的gridview的第二個單元格中沒有任何文本,實際上你的gridview只有一個基於你提供的代碼的單元格。

public void Dedupe(Object o, EventArgs e) 
{ 
    String output = "start "; 
    IEnumerable<GridViewRow> rows = from r in GV0.Rows 
            where r.RowType == DataControlRowType.DataRow 
            select r; 
    foreach (GridViewRow row in rows) 
    { 
     CheckBox cb = (CheckBox)row.FindControl("CheckBox1"); 
     if (cb.Checked) 
     { 
      output += row.Cells[1]; 
     } 
    } 
    Label1.Text = output; 
} 
+0

我想我知道你的意思。行目前是類型GridViewRow。我試圖解析它:row =(DataRow)row;但它不會讓我。這可能是我得到空弦的原因嗎? –