【问题标题】:Gridview Rowcommand Datakey gives index out of range errorGridview Rowcommand Datakey 给出索引超出范围错误
【发布时间】:2012-03-04 20:58:27
【问题描述】:

我在gridview 中添加了一个名为reserve 的按钮,当我单击它时,我想对gridview 进行一些修改,但是它给出了索引超出范围的错误。下面是 rowCommand 方法:

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = GridView1.Rows[index];

        if (row.RowType == DataControlRowType.DataRow)
        {
            welcomeUser.InnerText = GridView1.DataKeys[index].Value.ToString();
        }            
    }

以下是我的 gridview 列:

        <Columns>
            <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
            <asp:BoundField DataField="BookName" HeaderText="BookName" 
                SortExpression="BookName" />
              <asp:ButtonField ButtonType="Button" Text="Reserve" CommandName="Reverse" />
        </Columns>

【问题讨论】:

  • 你在你的gridview上设置DataKeyNames吗?
  • 这解决了问题,请写一个答案,我会接受的,我需要datakeys来修改数据吗?

标签: c# asp.net gridview rowcommand datakey


【解决方案1】:

如果您想使用 DataKey[index] 表达式,您需要设置 DataKeyNames
See MSDN here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多