我的DataGrid右边有一个"查看"按钮,当点就后就弹出一个新页面,显示此条记录的详细信息,
现在的问题是,我怎么取得当前"查看"按钮按下时那一行的数据
并且,"查看"按钮事件处理程序为
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
}

解决方案 »

  1.   

    <asp:datagrid id="DataGrid1" DataKeyField="id" ...>
    加一个属性 DataKeyField="id"  其中id是你数据库中的表的主键字段名private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string id = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
    Response.Redirect("edit.aspx?id="+id);
    }再在另一页面取id值,从数据库里读就是了
      

  2.   

    先取得选定的行号:int inRow = dataGrid1.CurrentRowIndex;dataGrid1[inRow][0].ToString();//取得当前行第一列的数据
      

  3.   

    出错
    索引超出范围。必须为非负值并小于集合大小。参数名: index
      

  4.   

    说明 我的是WEB窗体  我的是WEB窗体
      

  5.   

    //还可以如下
    private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    TableRow tr = (TableRow)e.Item;
    //上面的tr就是你的当前行,至于怎么传至另一个页面,好方法不知道,可以用session
    Session.Add("selectrow",tr);
    }另一页页面取的话如下:。。
    TableRow tr = (TableRow)Session["selectrow"];
    for(int i=0;i<tr.Cells.Count;i++)
    {
    Response.Write(tr.Cells[i].Text);
    }
      

  6.   

    为什么这么复杂,我只是想取得DataGrid指定行,指定列的数据,没这么复杂吧,也就是所我只想知道一个复杂,或者一个方法,能够让我知道DataGrid指定行,列中的数据我用
    DataGrid[1][2]出错,不能用,
      

  7.   

    private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    //打印出整行的值
    for(int i=0;i<e.Item.Cells.Count;i++)
    {
    Response.Write(e.Item.Cells[i].Text);
    }
    //取此行第一列的值:
    string str1 = e.Item.Cells[0].Text;
    //取此行第二列的值:
    string str2 = e.Item.Cells[1].Text;
    //取此行第三列的值:
    string str3 = e.Item.Cells[3].Text;
    ..................
    }
      

  8.   

    //取此行第三列的值:
    string str3 = e.Item.Cells[3].Text;
    写错了,应该是
    string str3 = e.Item.Cells[2].Text;
      

  9.   

    转载自某位大侠程序
    private viod table_del()
    {
    int x;
    object z;
    x = dataGrid1.CurrentRowIndex;
    z = dataGrid1[x,0];//dataGrid选中当前行的第0列数据
    DataRow foundRow;//定义记录类变量
    object[] findTheseVals = new object[1];
    findTheseVals[0] = z;
    foundRow = dataSet11.Tables["Student"].Rows.Find(findTheseVals);
    if(foundRow != null)
    foundRow.Delete();
    }
      

  10.   

    我终于找就一句
    Session["AcTag"]=e.Item.Cells[0].Text;