ASPX設置:
<asp:ButtonColumn DataTextField="用户名" HeaderText="用户名" CommandName="Select">
ASPS.CS设置:
private void modify_ServerClick(object sender, System.EventArgs e)
{
try
{
Response.Redirect("../modify/userModify.aspx?ID="+Convert.ToString(dgMain.SelectedItem.Cells[1].Text));
}
catch(Exception)
{
Response.Write("<Script>alert('请选择一个用户')</Script>");
}
但ID总是传值不成功。

解决方案 »

  1.   

    在datagrid的SelectedIndexChanged事件中控制
    string text1 = e.Item.Cells[1].Text
      

  2.   

    这样取值并没有错误,但使用这种方法去取值的时候需要注意不能使用模板列,使用模板列时要用FindControl,同时要注意索引值,索引值从0开始,同时你就算把某列设为隐藏了也要计算进来.
      

  3.   

    建议转成模板列,然后用dgMain.SelectedItem.Cells[1].Control[1].Text
      

  4.   

    问题我自己解决了:
    1、设置datagrid属性DataKeyField='要提取的字段'
    2、this.dgMain.DataKeys[dgMain.SelectedItem.ItemIndex].ToString());
    还有其它办法吗。