如上图,一列有2个字段的值,怎么获取string a= Convert.ToString(this.GridView1.Rows[i].Cells[1].Text);这样只能获取某行第二列的一个字段值,我一列有2个字段要怎么获取呢。我获取了插入到另外一个数据库中去的

解决方案 »

  1.   

       string sss = "14/8";
                string[] ids;
                //foreach (DTO item in newDto)
                //{
                //    sss += item.id+"," + item.name+",";
                //}
                ids = sss.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
         
                Console.Write(ids[0]+ids[1]);
      

  2.   


    string a= Convert.ToString(this.GridView1.Rows[i].Cells[1].Text);
    string[] ids;
        ids = a.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
       ids中就是你要的2个值了、
      

  3.   

    前台就像这样啊                                <asp:TemplateField HeaderText="木箱规格L/W/H">
                                    <ItemTemplate><%#Eval("case_length") %>/<%#Eval("case_width")%>/<%#Eval("case_height")%></ItemTemplate>
                                    </asp:TemplateField>现在我想把case-length,case_width,case-height的值分别保存到3个变量中去
      

  4.   

    代码没贴全啊,也不知道你这是第几个Cell,你这样试试:
    DataBoundLiteralControl dblc0=this.GridView1.Rows[i].Cells[1].Controls[0] as DataBoundLiteralControl;
    dblc0.Text获取。其中Controls[0]中的下标序号:可能是0、1、2,自己试一下。
      

  5.   


    我这个是第6列的话,那就是cells[5]咯,那cells[5]中有3个字段的值,怎么试法
      

  6.   

    看7楼,this.GridView1.Rows[i].Cells[1].Controls[0]
    this.GridView1.Rows[i].Cells[1].Controls[1]
    this.GridView1.Rows[i].Cells[1].Controls[2]
    this.GridView1.Rows[i].Cells[1].Controls[3]
      

  7.   

    每一个绑定<%#Eval("xxx")%>,都对应一个DataBoundLiteralControl,转换成它就行了。
      

  8.   


        protected void Button5_Click(object sender, EventArgs e)
        {
            DataBoundLiteralControl dblc0 = this.GridView1.Rows[0].Cells[5].Controls[1] as DataBoundLiteralControl;
            string a = dblc0.Text;
            Response.Write("<script>alert(" + a + ")</script>");    }我想输出a的值看看效果,我这样写报错:索引超出范围。必须为非负值并小于集合大小。
      

  9.   

    Controls[0],输出一下看看,会不会Cells[5]有问题啊。
      

  10.   

    我试了一下,可以用DataBoundLiteralControl dblc = this.GridView1.Rows[0].Cells[5].Controls[0] as DataBoundLiteralControl;然后在对dblc.Text进行字符串处理,比如Split方法。
      

  11.   


    我的gridview是这样的,一开始就是Controls[0]不行才改成其他数的
      

  12.   

    按照这张图,写:
    DataBoundLiteralControl dblc = this.GridView1.Rows[0].Cells[5].Controls[0] as DataBoundLiteralControl;
    string[] values=dblc.Text.Split('/');
    values[0]到values[2]应该就是你要取的值。
      

  13.   


    可是DataBoundLiteralControl dblc = this.GridView1.Rows[0].Cells[5].Controls[0] as DataBoundLiteralControl;出错   索引超出范围。必须为非负值并小于集合大小。
      

  14.   

    GridView1.DataBind()执行过了吗?
    没执行过的话,可能一行都没有。Rows[0]存在吗?Cells[5]存在吗?代码中Response.Write(this.GridView1.Rows.Count);
    Response.Write(this.GridView1.Rows[0].Cells.Count);看看各是多少?