Asp.net DataGridCommandEventArgs Item.ItemIndex=-1?

Asp.net DataGridCommandEventArgs Item.ItemIndex=-1?,asp.net,datagrid,itemcommand,Asp.net,Datagrid,Itemcommand,您好,我有一个DataGrid,定义如下: <asp:DataGrid ID="DG_XYZ" runat="server" DataKeyField="id" OnItemCommand="DG_XYZ_ItemCommand"> .... protected void DG_XYZ_ItemCommand(object sender, DataGridCommandEventArgs e) { int id = Convert.ToInt32(DG_XYZ.DataKe

您好,我有一个DataGrid,定义如下:

<asp:DataGrid ID="DG_XYZ" runat="server" DataKeyField="id" OnItemCommand="DG_XYZ_ItemCommand"> ....
protected void DG_XYZ_ItemCommand(object sender, DataGridCommandEventArgs e)
{
    int id = Convert.ToInt32(DG_XYZ.DataKeys[e.Item.ItemIndex].ToString();
    ...
}
例如,这会在分页时出错,因为e.Item.ItemIndex为-1。问题是为什么?方法如下所示:

<asp:DataGrid ID="DG_XYZ" runat="server" DataKeyField="id" OnItemCommand="DG_XYZ_ItemCommand"> ....
protected void DG_XYZ_ItemCommand(object sender, DataGridCommandEventArgs e)
{
    int id = Convert.ToInt32(DG_XYZ.DataKeys[e.Item.ItemIndex].ToString();
    ...
}
这里怎么了?谢谢:)

粘贴完整的栅格视图代码

bcz e.Item.ItemIndex从0开始