我想从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