2013-11-22 38 views
0

我有一個gridview複選框,我想要捕獲以瞭解被檢查的行。問題是代碼似乎沒有超過被檢查的複選框控件的條件。我已經把複選框中的模板,讓他們的工作,我叫控制addCart 現在我有以下代碼:無法獲取DataKeys中的值以顯示在Response.Write asp

protected void addCart_HandleClick(object sender, EventArgs e) 
     { 
      foreach (GridViewRow fila in GridCol.Rows) 
      { 
       CheckBox addCart = (CheckBox)fila.FindControl("addCart"); 
       if (addCart.Checked) 
      {Response.Write(GridCol.DataKeys[fila.RowIndex].Value + "Cantidad: " + fila.Cells[3].Text); 
       rowSel.Text = GridCol.DataKeys[fila.RowIndex].Value.ToString(); 

但是,雖然當我調試,我可以看到的addCart變化的經過值爲真,沒有任何顯示。我想知道我是否正確使用Response.Write,但我認爲標籤rowSel應該顯示一些內容,但沒有任何反應。我試圖驗證代碼實際工作,所以我可以稍後傳遞行值。任何建議將不勝感激。

回答

2

試試這個,

for (int i = 0; i < YourGridViewID.Rows.Count; i++) 
{ 

GridViewRow row = YourGridView.Rows[i]; 
bool isChecked = ((CheckBox) row.FindControl("yourCheckBoxID")).Checked; 

    if (isChecked) 
    { 
    Response.Write((string)this.YourGridViewID.DataKeys[i]["yourColumnDataKey"];); 
    } 
} 
+0

謝謝你,我用你的代碼,雖然我今天意識到,我叫它們被認爲可以進入名單上有填充GridView控件的值,從錯誤的類!這真的是問題的一部分,因爲我得到一個錯誤告訴我鑰匙的價值是無限的。經過這些更正之後,一切都很順利,我沒有像以前那樣使用foreach循環,儘管我認爲它畢竟不會有什麼區別,但是謝謝你的關心。我有點絕望,我沒有徹底檢查我的代碼發佈之前,但嘿,噓...發生! –