C# ';GridView';不包含对';行索引';没有扩展方法';行索引';接受类型为'的第一个参数;xGridView';可以找到

C# ';GridView';不包含对';行索引';没有扩展方法';行索引';接受类型为'的第一个参数;xGridView';可以找到,c#,visual-studio-2010,gridview,row,C#,Visual Studio 2010,Gridview,Row,我正在使用MSVisualStudio2010,我导入了这个aspx,我相信它来自一个旧版本的框架 protected void selectedbutton_Click(object sender, EventArgs e) { string PKname = ""; int k = 0; foreach (GridView row in this.selectMedGridView.Rows) { CheckBox cbox = (CheckBox)

我正在使用MSVisualStudio2010,我导入了这个aspx,我相信它来自一个旧版本的框架

protected void selectedbutton_Click(object sender, EventArgs e)
{
    string PKname = ""; int k = 0;
    foreach (GridView row in this.selectMedGridView.Rows)
    {

        CheckBox cbox = (CheckBox)row.FindControl("selrecord");
        if (cbox.Checked)
        {
            PKname += "ID=" + this.selectMedGridView.DataKeys[row.RowIndex].Value.ToString().Trim() + "&";
        }
        k++;
    }
    Response.Redirect("view_selected_med_records.aspx?" + PKname);

}
我收到了这个错误,它似乎与单词
RowIndex
有关。我假设新版本中不存在这种语法


但是我不知道新的语法是什么。有人能帮我吗?

迭代变量的类型需要是
GridViewRow
而不是
GridView

foreach (GridViewRow row in this.selectMedGridView.Rows)

这也是使用“var”的一个很好的例子,因为它可以正常工作。哇,谢谢。这就解决了问题。我不知道这个错误是由于什么原因造成的else@DavidKhaykin别这么想。
GridViewRowCollection
是一个非泛型集合,因此
var
将简单地推断
对象