名称'row'在当前上下文中不存在

时间:2011-08-29 03:44:26

标签: c# asp.net gridview

我正在尝试执行以下代码,我收到错误消息:

名称'row'在当前上下文中不存在

代码

protected void wgrdSearchResult_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            if (e.CommandName == "edit")
            {
                int index = Convert.ToInt32(wgrdSearchResult.DataKeys[row.RowIndex].Value);

                //int index = Int32.Parse((string)e.CommandArgument);
                string CustomerID = (string)wgrdSearchResult.DataKeys[index].Values["CustomerID"];
            }


        }

3 个答案:

答案 0 :(得分:1)

行未在您的方法中声明。看看这个MSDN示例,显示您似乎想要做的事情。 从上面的链接:

// Convert the row index stored in the CommandArgument
  // property to an Integer.
  int index = Convert.ToInt32(e.CommandArgument);

  // Retrieve the row that contains the button clicked 
  // by the user from the Rows collection.
  GridViewRow row = ContactsGridView.Rows[index];

答案 1 :(得分:0)

您尚未声明任何名为row的变量,因此您对index的分配失败。

答案 2 :(得分:0)

试试这个:

protected void wgrdSearchResult_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "edit")
    {
        int index = Convert.ToInt32(wgrdSearchResult.DataKeys[e.CommandArgument].Value);

        string CustomerID = (string)wgrdSearchResult.DataKeys[e.CommandArgument].Values["CustomerID"];
    }
}

您是否也可以显示GridView前端的代码?我的代码假设您有一个DataKey(即CustomerID),或者您为GridView设置了多个数据键,其中第一个数据键是一些任意“索引”,显然没有意义,从未使用过第二个键是有意义的CustomerID。