我的gridview中的第一行是空白行,这些空白行用于在gridview中搜索值。我在每列上添加一个空行但我不想在第一列添加任何空白行,这是我的数据的ID。我只想从第二列开始添加空白行。我怎样才能做到这一点? 这是我的代码背后:
protected void OnDataBound(object sender, EventArgs e)
{
GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
for (int i = 0; i < GV_EditProject.Columns.Count; i++)
{
TableHeaderCell cell = new TableHeaderCell();
TextBox txtSearch = new TextBox();
txtSearch.Attributes["placeholder"] = GV_Test.Columns[i].HeaderText;
txtSearch.CssClass = "search_textbox";
cell.Controls.Add(txtSearch);
row.Controls.Add(cell);
}
GV_Test.HeaderRow.Parent.Controls.AddAt(1, row);
}
这是我的aspx文件
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="5">
<ItemStyle Width="5px" />
</asp:BoundField>
答案 0 :(得分:2)
我建议将TemplateField
用于标题处带有搜索文本框的列。例如,我在下面的“评论”中添加了一个:
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="5">
<ItemStyle Width="5px" />
</asp:BoundField>
<%-- This bound field is converted to Template Field --%>
<%--<asp:BoundField DataField="COMMENTS" HeaderText="COMMENTS" ItemStyle-Width="5">
<ItemStyle Width="5px" />
</asp:BoundField>--%>
<asp:TemplateField ItemStyle-Width="150px" HeaderText="COMMENTS">
<ItemTemplate>
<asp:Label ID="lblComm" runat="server" Text ='<%# Eval("COMMENTS")%>' ></asp:Label>
</ItemTemplate>
<HeaderTemplate>
<asp:TextBox ID="txtSearchComment" runat="server" CssClass="search_textbox" Text=""></asp:TextBox>
</HeaderTemplate>
</asp:TemplateField>