前几天看到有大侠的贴子!
1.GridView1.DataKeyNames = new string[] { "id" }; 
2.string id=GridViews1.DataKeys[i]["id"].ToString();用2在删除时取关键字的值为什么总提示超出索引范围?

解决方案 »

  1.   

    2.string id=GridViews1.DataKeys[i]["id"].ToString();
    如果你不是在循环里。。
    DataKeys[i]的I
    要改成相关列数没碰过,仅猜测
      

  2.   

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string id = GridView1.DataKeys[e.RowIndex]["id"].ToString();
            ......
        }
      

  3.   

    我就是在删除事件里写的!protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string id = GridView1.DataKeys[e.RowIndex]["id"].ToString();
            ......
        }
      

  4.   

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            if (e.Row.RowIndex == -1)
                return;
            string id = GridView1.DataKeys[e.RowIndex]["id"].ToString();
            ......
        }