如果用户点击了按钮想删除某行,我必须知道这一行数据的主键值(例如id)才能删除这行。我在datagrid的itemcommand事件里写if (e.comandname="delete")
请问如何获得在第一列的主键值呢?请高手指教,谢谢

解决方案 »

  1.   

    如果是绑定列e.Item.Cells[0].Text
      是模板列e.Item.FindControls("ctrlId")再转换为相应控件类型
      

  2.   

    方法一:
    设置DataFieldKeys,datagridname.DataKeys[(int)e.Item.ItemIndex]
    方法二:
    定义单元格
    TableCell myTableCell;
    //单元格的引用
    myTableCell = e.Item.Cells[你所要单元格索引];
    //单元格中控件的引用,你可以把数值放在label中显示
    Label a = (Label)myTableCell.Controls[这个单元格中元素索引];
      

  3.   

    或者你可以在绑定时指定
    DatakeyFields= "ID";
    取值datagrid1.DataKeys[e.Item.ItemIndex].ToString();
      

  4.   

    1.方法一:
    绑定的时候,设置主键字段
    dgList.DataSource = StatisticsDT;
    dgList.DataKeyField ="ID";//设置主键字段
    dgList.DataBind();
    调用
    if (e.comandname="delete")
     {
    dgList.DataKeys[e.Item.ItemIndex] //就是主键的值
    }2.方法二
    未设置主键字段,可以帮定 DataGrid 中绑定其中ID ,假设是第一列,就可以,可以将这列隐藏起来。
    调用
    if (e.comandname="delete")
     {
    e.Item.cells[0].Text//就是主键的值
    }
      

  5.   

    1.方法一:
    绑定的时候,设置主键字段
    dgList.DataSource = StatisticsDT;
    dgList.DataKeyField ="ID";//设置主键字段
    dgList.DataBind();
    调用
    if (e.comandname="delete")
     {
    dgList.DataKeys[e.Item.ItemIndex] //就是主键的值
    }2.方法二
    未设置主键字段,可以帮定 DataGrid 中绑定其中ID ,假设是第一列,就可以,可以将这列隐藏起来。
    调用
    if (e.comandname="delete")
     {
    e.Item.cells[0].Text//就是主键的值
    }