我想從GridView中獲取值並將其保存爲Session變量。從GridView獲取值
我知道列名,並且在GridView中只有一個值。選擇它並保存爲Session變量的最佳方法是什麼?
列名稱是CustomerID,其值始終爲int。
我想從GridView中獲取值並將其保存爲Session變量。從GridView獲取值
我知道列名,並且在GridView中只有一個值。選擇它並保存爲Session變量的最佳方法是什麼?
列名稱是CustomerID,其值始終爲int。
如果在一列和一行GridView,你可以在下面嘗試。
Session["MySessionValue"]= GridView1.Rows[0].Cells[0].Text;
但是如果GridView中沒有記錄,通過索引訪問時可能會拋出異常。所以最好還是檢查GridView1.Rows.Count
第一,並獲得價值
在頁面加載時寫入該代碼是否正確? – joshuahornby10 2013-05-13 17:38:51
你在哪裏綁定數據?以及你想要這個值的地方? – Damith 2013-05-13 17:40:32
我之所以問這個問題,是因爲它似乎沒有保存任何東西。我是否應該等待頁面加載以調用代碼?我只想將它保存到會話中,然後在用戶點擊的下一頁上使用它。 – joshuahornby10 2013-05-13 17:42:07
您可以設置GridView的一個DataKey
爲客戶ID,並選擇由:
int ID = Convert.ToInt32(GridView1.DataKeys[indx].Value);
indx
是行指數的GridView ..
我有一個錯誤,說索引超出範圍。 GridView中只有一行,並嘗試了0和1,仍然得到相同的錯誤。 – joshuahornby10 2013-05-13 16:31:40
據我所知,列名有沒有辦法選擇這個?感謝您一直以來的幫助。 – joshuahornby10 2013-05-13 16:36:25
什麼是您的功能選擇一行? – mehdi 2013-05-13 17:07:56
這不是做這一個適當的方式,你更好的硬編碼Damith的答案的cellindex但反正稍長版本
if (GridView1.Rows.Count > 0)
{
int indexofcolumn = 0;
foreach (DataControlField column in GridView1.Columns)
{
if (column.HeaderText == "CustomerID") break;
indexofcolumn++;
}
Session["CustomerID"] = GridView1.Rows[0].Cells[indexofcolumn].Text;
}
什麼類型的列是?一個'BoundField'? – Magnus 2013-05-13 16:22:22
看看這個[答](http://stackoverflow.com/a/625303/122005) – chridam 2013-05-13 16:23:45
網格可以有很多行 - 你知道行號嗎? – 2013-05-13 16:24:08