GridView有四列
【选择】 【内容】 【所获票数】 【流水号】
我现在把流水号那一列隐藏显示
但我想获取某一行的【流水号】的文本
用string ItemID = ItemGridView.Rows[i].Cells[3].Text.ToString();不行
求解

解决方案 »

  1.   

    如果在服务端设置visible=false隐藏,一般是不能获取到的,除非通过数据源获取如果通过js设置了style进行的隐藏,可以直接获取到
      

  2.   

    protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
      {
      if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
      {
      e.Row.Cells[1].Visible = false;
      e.Row.Cells[2].Visible = false;
      }
      }
    取值:
    GridView.Rows [i].Cells [1].Text  或
    <asp:HiddenField ID="Hd_SH" Value='<%#DataBinder.Eval(Container.DataItem,"BH")%>' runat="server" />

      <asp:BoundField DataField="BH" HeaderText="">
    <ControlStyle CssClass="hidden" />
    <FooterStyle CssClass="hidden"/>
    <HeaderStyle CssClass="hidden"/>
    <ItemStyle CssClass="hidden"/>
    </asp:BoundField>
    .hidden
    {
    display:none;
    }
      

  3.   

    如果要隐藏后还可以直接访问,那么隐藏过程cs服务端代码可以这样写:
    foreach (GridViewRow r in GridView1.Rows)
        r.Cells[0].Style.Add("display","none");
    设置style
      

  4.   

       protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            //获取选中行的索引值
           int i= e.NewSelectedIndex;
            //得到TextBox,。他存在于GridView中
           TextBox txt= this.GridView1.Rows[i].Cells[3].FindControl("TextBox2") as TextBox ;
           //得到Literal,。他存在于GridView中,其不可见,只是用来获取图书的编号---Visible=false;
           Literal lit = this.GridView1.Rows[i].Cells[3].FindControl("Literal2") as Literal;        //通过上面的控件得到购物车中该图书的编号的数量
           int bookid= Convert.ToInt32(lit.Text.Trim());
           int booknum = Convert.ToInt32(txt.Text);        //更新购物车里的信息,也就是OrderInfo中的信息,将其设为文本中的值
           OrderBiz.UpdataOrderNum2(bookid, booknum );       //得到更新后所需的金额,并显示
           decimal money = totleMoney();
           Literal1.Text = "共计:" + Convert.ToString(money) + "元";
    }我以前写过的一段,是在GridView里加TextBox和Literal,,希望对你有用不过这个方法不是很好,刚刚学时写的一段代码
      

  5.   

    visible是为false之后,是不会解析到前台的。。
      

  6.   

    不设visible=false;直接通过样式来把列的宽度设为0
      

  7.   

    利用css style="display:none"这样后台可以获取数据
      

  8.   

    (BoandFiled)GridView.Column[0].dataFild="绑定的列名"
    (BoandFiled)GridView.Column[0].HeadText="头文本"