如何访问代码隐藏中的模板字段
本文关键字:字段 隐藏 代码 何访问 访问 | 更新日期: 2023-09-27 18:31:46
<asp:DetailsView...
<asp:TemplateField HeaderText="My CheckBox" SortExpression="DataID" >
<InsertItemTemplate>
<asp:CheckBox ID="T01cbx" runat="server" Visible ="false" Checked='<%# Bind("DataID") %>' AutoPostBack="True" " />
</InsertItemTemplate>
</asp:TemplateField>
我想为上面的模板字段提供一个 ID 或名称,并从后面的代码访问它。无论如何可以通过给予和ID或名称来找到模板字段吗?这是在详细信息视图中。
您可以使用
LINQ 通过它的HeaderText
来获取TemplateField
:
TemplateField cbField = DetailsView1.Fields.OfType<TemplateField>()
.Where(f => f.HeaderText == "My CheckBox")
.FirstOrDefault();
我过去曾尝试过这样做,但从未找到比编写一个循环所有列并通过它的 SortExpression 找到我要修改的函数更好的方法。
这是我用来通过其 SortExpression 隐藏/显示列的函数:
public void ShowHideGridColumnBySortExpression(string sortExpression, bool show)
{
for (int i = 0; i < gvProducts.Columns.Count; i++)
{
if (gvProducts.Columns[i].SortExpression != null && gvProducts.Columns[i].SortExpression == sortExpression)
{
gvProducts.Columns[i].Visible = show;
break;
}
}
}