如何在gridview中检索“TextBox1”并在加载aspx时指示它的值

时间:2012-01-29 06:40:32

标签: asp.net vb.net gridview textbox sqldatasource

基本上我想要检索一个“TextBox1”,我将其添加到gridview的一个新列(TemplateField)中,其余部分是来自sqldatasource控件的数据加载

我想指出我计算的“TextBox1”基本值...所以结果是当加载default.aspx时(意味着页面加载)“TextBox1”应该显示计算值... sO现在是我如何从gridview中检索“TextBox1”以便我指示一个值

因为我的网格视图数据使用设计default.aspx中的sqldatasource中的检索,因此我不需要使用下面的代码

 DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Age");

DataRow dr = dt.NewRow();
dr["Name"] = "Chris Harris";
dr["Age"] = "40";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Name"] = "Sean Williams";
dr["Age"] = "39";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Name"] = "Paul Newcombe";
dr["Age"] = "38";
dt.Rows.Add(dr);

GridView1.DataSource = dt;
GridView1.DataBind();

那么应该如何从gridview中检索“TextBox1”以便我指示一个值

<ItemTemplate>
                <table style="width: 73%; height: 31px;">
                    <tr>
                        <td class="style1">
                            <asp:Label ID="Label2" runat="server" Text="Calculation:"></asp:Label>
                        </td>
                        <td >
                            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        </td>
                    </tr>

                </table>
            </ItemTemplate>

2 个答案:

答案 0 :(得分:0)

您需要在RowDatabound事件中的gridview容器中找到控件。 Gridview class and methods

TextBox t = GridView1.FindControl("TextBox1") as TextBox;
            if (t != null)
            {
                t.Text = "Hello World!";
            }

答案 1 :(得分:0)

如果这是一个逐行的情况,您可能希望在GridView上的RowDataBound事件中执行此操作:

public void gridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

    if (e.Row.RowType == DataControlRowType.DataRow) {
        Textbox txt = (TextBox)e.Row.FindControl("Textbox1");
        //Do your processing here...

    }
}