0
我在這裏回顧了各種各樣的問題,但是我仍然無法得到這個工作。我有一個網格視圖(OrderList
),並在這個gridview我有一個按鈕列來簡單地更新一個特定的領域(基本上是一個接受訂單標記)。如何在GridView中獲取單元格的值?
在aspx文件我有以下代碼
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="ButtonToAcceptOrder" runat="server" Text="Accept Order" CommandName="AcceptOrder" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" />
</ItemTemplate>
</asp:TemplateField>
在代碼文件的背後,我有以下代碼:
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)
哦從來沒有使用DataKeys,感謝您通知我他們:) 只是一個小問題,我得到'錯誤',因爲datakeys不是一種方法。 – user2151973
更新了我的答案。 '(row.DataItemIndex)'應該是'[row.DataItemIndex]'。 –
感謝您的幫助。工作正常。通過一些快速調試,我意識到我的代碼正在獲得第二列的價值(我愚蠢地忘記了這一點)。正確的格式應該是:'row.Cells [0] .Text' – user2151973