我用下面的代码,怎么取不到值呢?我想取第二行,第三列的值.
private void dg_payitem_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
  string strID=dg_payitem.Items[1].Cells[2].Text;


            
还有一个小问题:
BoundColumn col1 = new BoundColumn();
col1.DataField = "staff_id";
col1.HeaderText = "";     //这儿我应该如何写.才能得到上面strID的值
dg.Columns.Add(col1);
                                  大家帮帮我吧!

解决方案 »

  1.   

    string strID=dg_payitem.Items[1].Cells[2].Text;
    这个写法应该写在
    datagrid绑定之后,不应该写在这里。
      

  2.   

    第二个问题,如果是不同的datagrid 是可以,如果是同一个顺序就反了。
      

  3.   

    谢谢楼上的大哥.
    第一个问题,我是先绑定了datagrid,然后才ItemDataBound,但得不到值?
    第二个问题,col1.HeaderText = "这儿如何得到一个参数值";   
      

  4.   

    第一个问题,我是先绑定了datagrid,然后才ItemDataBound,但得不到值?
    =======>
    ItemDataBound会运行n次。第一次是header。所以没有值。
      

  5.   

    string strID1 =e.Item.Cells[0].Text
    这样可能得到.为什么
    string strID=dg_payitem.Items[1].Cells[2].Text;就不能.还有一个小问题就是.我在同一页面中放个textbox.如何得到strID的值呢?
    谢谢尊敬的慕白兄.
      

  6.   

    string strID=dg_payitem.Items[1].Cells[2].Text;就不能.
    ======>
    此时还没有绑定第二条记录。
    this.TextBox1.Text = strID;
      

  7.   

    this.DataGrid.DataBind();
    //然后
    string strID=dg_payitem.Items[1].Cells[2].Text;//前提是有2条以上记录。
      

  8.   

    this.DataGrid.DataBind();放在哪儿
    ===========
    这句应该有的。把
    下面一句放在它后面。