2009-01-12 21 views
2

我用下面的代碼試圖從一個GridView中獲取值從行/單元格的值:不能得到GridView中

foreach (GridViewRow row in this.dgvEstudios.Rows) 
{ 
    var xy = row.Cells[1].Text; 
} 

總是得到一個空字符串("")從.Text返回的值爲什麼會發生這種情況?我已經設置了EnableViewStatetrue

回答

2

單元格可能具有控件(例如LiteralControl或HyperLink)。這是你應該尋找的。

row.Cells[1].Controls集合,你應該找。

+0

這個工程!但是像這樣指定ControlsCollection的索引: row.Cells [1] .Controls [1]; 這是一個正常的行爲? – 2009-01-13 14:51:14

1

它可能取決於許多事情..此代碼在何時填充GridView(Databind()調用)時觸發?

沒有任何語境,很難說它可能是什麼。

+0

我使用RowDataBound與GridView中的數據一起玩,我將測試第一個答案,但ViewState怎麼樣? – 2009-01-13 01:49:20

4

如果在每個單元的控制,你將需要得到這樣的價值:

Label lblEmailAddress = GridView.Rows[e.CommandArgument].FindControl("lblEmailAddress"); 
string Email = lblEmailAddress.Text; 
在這種情況下

它,它在具有價值不是細胞iteslf細胞的控制。