我如何在GridView中获得单元格的值
本文关键字:单元格 GridView | 更新日期: 2023-09-27 18:01:28
我在这里回顾了各种问题,关于这个,但是我仍然不能让它工作。
我有一个网格视图(OrderList
),在这个网格视图中,我有一个带有按钮的列,用于简单地更新特定字段(基本上标记为接受的订单)。
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="ButtonToAcceptOrder" runat="server" Text="Accept Order" CommandName="AcceptOrder" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" />
</ItemTemplate>
</asp:TemplateField>
在code Behind文件中,我有以下代码:
protected void OrderList_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName =="AcceptOrder")
{
// Retrieve the row index stored in the
// CommandArgument property.
int index = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button
// from the Rows collection.
GridViewRow row = OrderList.Rows[index];
Int32 oId = Int32.Parse(row.Cells[1].Text);
//Code to Update database by order id
}
}
错误来自oId
,告诉输入格式不正确。
在gridview的第一列中,我显示了我需要的ID
。而其他列则显示其他详细信息。
如果你在我的代码中发现任何问题,你能帮忙吗?
(我以前遵循本教程:http://msdn.microsoft.com/en-us/library/vstudio/bb907626(v=vs.100).aspx)
如果你有一个唯一的id为每一行,那么你应该使用GridView的DataKeyNames
属性。
<GridView id="OrderList" DataKeyNames="oId"... />
然后在RowCommand代码中,像这样访问它:
Int32 oId = OrderList.DataKeys[row.DataItemIndex].Value;
这比从单元格中获取值要干净得多。