如何在Gridview内的表格单元格中找到对文本框的控制
Posted
技术标签:
【中文标题】如何在Gridview内的表格单元格中找到对文本框的控制【英文标题】:htHow to find control of Textbox in table cell which is inside Gridview 【发布时间】:2016-08-06 08:29:28 【问题描述】:我有一个gridview,我的记录很少,我在gridview 的顶部有一个表格单元格,带有一个文本框和一个用于过滤记录的按钮。如何找到该文本框的控件。
protected void GridView2_RowCreated(object sender, GridViewRowEventArgs e)
if (e.Row.RowType == DataControlRowType.Header)
GridViewRow HeaderGridRow = new GridViewRow(0, 1, DataControlRowType.Header, DataControlRowState.Normal);
TableCell HeaderCell = new TableCell();
HeaderCell.Text = "";
TextBox abc = new TextBox();
HeaderCell.Controls.Add(abc);
HeaderCell.ColumnSpan = 3;
HeaderGridRow.Cells.Add(HeaderCell);
HeaderCell = new TableCell();
HeaderCell.Text = "";
TextBox search = new TextBox();
search.ID = "search1";
HeaderCell.Controls.Add(search);
HeaderCell.ColumnSpan = 3;
HeaderGridRow.Cells.Add(HeaderCell);
Control ctrl = HeaderGridRow.Cells[1].Controls[0];
TextBox tc = ctrl as TextBox;
HeaderCell = new TableCell();
Button btn_chk = new Button();
btn_chk.Text = "go";
HeaderCell.Controls.Add(btn_chk);
HeaderCell.ColumnSpan = 1;
btn_chk.Click += new EventHandler(btnClick);
HeaderGridRow.Cells.Add(HeaderCell);
//btn_chk.CommandName = "btn_chk";
GridView2.Controls[0].Controls.AddAt(0, HeaderGridRow);
html part
<asp:GridView ID="GridView2" runat="server" OnRowCreated="GridView2_RowCreated">
<Columns>
<asp:TemplateField>
<%-- <HeaderTemplate>
Planning Id<br />
<asp:TextBox ID="txt_planningid" runat="server"></asp:TextBox>
</HeaderTemplate>--%>
<HeaderTemplate>
<asp:Label ID="Label9" runat="server" Text="S.No"></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label8" runat="server" Text="<%#Container.DataItemIndex+1 %> "></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我在 rowcreated 事件中使用表格单元格添加了两个文本框和一个按钮..
【问题讨论】:
你看过这个***.com/questions/1965835/… 是的,我已经检查过了。gridview.rows[] 返回记录的行数。我想要控制 gridview 标题部分上方的文本框。我想使用该文本框来过滤记录在网格视图中。 你能发布你的 HTML 是的,我已经更新了.. 【参考方案1】:我想这就是你所追求的,
向您的 Gridview 添加 RowDataBound 事件
OnRowDataBound="GridView2_RowDataBound"
使用 RowDataBound 事件处理事件并找到文本框:
protected void GridView2_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
if (e.Row.RowType == DataControlRowType.Header)
// Find the textbox
TextBox abc = (TextBox)e.Row.FindControl("abc");
【讨论】:
实际上在 gridview GridView2 行创建事件中,我动态创建了另一个 gridview 'headergridrow',其中有一个文本框。我需要找到该文本框的控件。以上是关于如何在Gridview内的表格单元格中找到对文本框的控制的主要内容,如果未能解决你的问题,请参考以下文章