<div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    
    </div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField HeaderText="文本">
                <ItemTemplate>
                    <%# Eval("ida") %>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                <a style="text-decoration:underline;cursor:pointer;color:Blue" onclick="showModal('<%#Eval("ida") %>')">打开</a>
                    
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("ida", typeof(string)));        DataRow dr = dt.NewRow();
        dr[0] = "aa";
        dt.Rows.Add(dr);        dr = dt.NewRow();
        dr[0] = "bb";
        dt.Rows.Add(dr);        dr = dt.NewRow();
        dr[0] = "cc";
        dt.Rows.Add(dr);        GridView1.DataSource = dt;
        GridView1.DataBind();
        TextBox1.Text = ???;  //  怎么取<%# Eval("ida") %>的值???    }

解决方案 »

  1.   

    没明白你想要做什么
    dt中有N行数据  不可能显示在一个TextBox1中 
    如果TextBox1是GridView1模板中的控件那应该是在前台页面中写TextBox1.Text =<%# Eval("ida") %>就行后台一定要赋值  也应该是 TextBox1.Text=dt.rows[0]["ida"].ToString();这是取的第一行的值
      

  2.   

    获取指定列的值:((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text.Trim()
      

  3.   

    TextBox1.Text = dt[0][0]+dt[1][0]+dt[2][0]?
      

  4.   

    假如行不定向  能以遍历的形式 去获取不?
    获取 ida  的所有值  不是一行一行的
      

  5.   

    首先你取<%# Eval("ida") %>的值有三个的。<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField HeaderText="文本">
                    <ItemTemplate> 
                        <!--将值放在一个Label中,或其他的也可以-->
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("ida") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                    <a style="text-decoration:underline;cursor:pointer;color:Blue" onclick="showModal('<%#Eval("ida") %>')">打开</a>
                        
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("ida", typeof(string)));        DataRow dr = dt.NewRow();
            dr[0] = "aa";
            dt.Rows.Add(dr);        dr = dt.NewRow();
            dr[0] = "bb";
            dt.Rows.Add(dr);        dr = dt.NewRow();
            dr[0] = "cc";
            dt.Rows.Add(dr);        GridView1.DataSource = dt;
            GridView1.DataBind();
             //以下是增加的代码
             string s = "";
            foreach(GridViewRow item in GridView1.Rows)
            {
                Control control = item.FindControl("Label1");
                s += ((Label)control).Text + "|";
           }
            TextBox1.Text = s;  //  就这样取<%# Eval("ida") %>的值
        }
        
      

  6.   

    那gridview 没有 Textbox  也能这样获取的?
      

  7.   

    哈哈  
    <ItemTemplate>
                        <%# Eval("ida") %>
                    </ItemTemplate>是属于Lable的?
      

  8.   

    没仔细看 I'M SORRY  
      

  9.   

    你笑什么?不就是一个显示的内容嘛,作为Label的Text值,是方便你取值而已,你试过这种方法没有。
      

  10.   

    可行的  伙计 
    只是我决定  在不加 lable或textbox的情况下  能不能去到
      

  11.   

    TextBox只是导成TextBox
                for (int i = 0; i < GridView1.Rows[0].Cells.Count; i++)
                {
                    TextBox1.Text = TextBox1.Text + this.GridView1.Rows[i].Cells[0].Text;
                }
    Rows[为行索引]
    Cells[为列索引]
      

  12.   

    能取到,直接+DataBinder.Eval(e.Row.DataItem, "wtid").ToString()+ 取数据库字段值,也是可以的。这个你试试,我就是提个想法。