图片        商品名称      商品价格           商品简介   
  有图片      aaaaaaaa     23.90          aaaaaaaaa      按钮
 
以下代码是点击“按钮”触发的:   protected void GVcommodity_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        string name =Convert.ToString(GVcommodity.Rows[0].Cells[0].Text); 
        string price = Convert.ToString(GVcommodity.Rows[0].Cells[2].Text);
    }错误:为什么在name和price没有值呢?急,请高手指点!!!
 

解决方案 »

  1.   

    补充一下:我上面用到的控件是GRIDVIEW
      

  2.   


    看看前台绑定的位置GVcommodity.Rows[0].Cells[X] 是否对应正确。
    获取值时断点跟一下,Text?还是Value?
      

  3.   

    GVcommodity.Rows[0].Cells[0].Text为null
      

  4.   

    为什么要用这种绑定方式》?
    是WINFORM 还是WEBFORM?
      

  5.   

    protected void GVcommodity_RowCommand(object sender, GridViewCommandEventArgs e) 
        { 
            string name =Convert.ToString(GVcommodity.Rows[e.Index].Cells[0].Text); 
            string price = Convert.ToString(GVcommodity.Rows[e.Index].Cells[2].Text); 
        } 看看有没有红字的属性或者类似的属性,很久没弄这个了或者
    protected void GVcommodity_RowCommand(object sender, GridViewCommandEventArgs e) 
        { 
            string name =Convert.ToString(e.Row.Cells[0].Text); 
            string price = Convert.ToString(e.Row.Cells[2].Text); 
        }
    看行不 
      

  6.   

    意思就是你的行要在e里去获取,而不是直接去取gridview的第一行,第一个行有可能是header
      

  7.   

    在Convert.ToString(GVcommodity.Rows[e.Index].Cells[0].Text)的e中没有e.Index这个属性!
      

  8.   

    我不是说了吗?你不要硬抄啊,这个属性名字不一定叫Index,我很久没弄网页的编程,只是记得有这么个属性或者叫ItemIndex,RowIndex?就是标示正在操作的行的index,要是不行你采用我给的第二种方法,这个方法里的Row应该有的,不然就不是RowCommand了。
      

  9.   

    GVcommodity.Rows[0]换成
    GVcommodity.Tables[0].Rows[0]试试
      

  10.   

    不要从GRIDVIEW里面拿数据出来,可以从你绑定的数据源里面拿数据啊
      

  11.   

    string name =Convert.ToString(GVcommodity.Rows[0].Cells[0].Value); 
            string price = Convert.ToString(GVcommodity.Rows[0].Cells[2].Value); 
      

  12.   

    你把自动产生列的属性设置成false,还有那个cells[0]中的索引要算你隐藏里面的列的.
      

  13.   

    GVcommodity.Rows[0].Cells[0].Value.Trim()
    试试