Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Gridview行命令数据键给出索引超出范围错误_C#_Asp.net_Gridview_Rowcommand_Datakey - Fatal编程技术网

C# Gridview行命令数据键给出索引超出范围错误

C# Gridview行命令数据键给出索引超出范围错误,c#,asp.net,gridview,rowcommand,datakey,C#,Asp.net,Gridview,Rowcommand,Datakey,我在gridview中添加了一个名为reserve的按钮,当我单击它时,我想对gridview进行一些修改,但是它会给出索引超出范围的错误。以下是命令方法: protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { int index = Convert.ToInt32(e.CommandArgument); GridViewRow row =

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

    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>

如果希望使用DataKey[index]表达式,则需要设置DataKeyName

您是否在gridview上设置了DataKeyName?这解决了问题,请将其作为答案写入,我将接受它,我是否需要datakeys来修改数据?