这是我的 html 标记,在 div 标记中将可见性添加为 false 会隐藏实际数据本身,但只留下一个空白列。我尝试访问 div 标签(是的,我将 runat="server"
标签添加到 html)并尝试像这样访问它 hideme.Visible = true;
抛出一个编译错误
Does not exist in the current context.
我应该更改/修改什么以确保此列在我的网格中完全隐藏?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowFooter="true"
onrowdatabound="GridView1_RowDataBound" onrowcreated="GridView1_RowCreated">
<Columns>
<asp:BoundField DataField="abcd" HeaderText="abcd" />
<asp:BoundField DataField="def" HeaderText="def" />
<asp:BoundField DataField="hij" HeaderText="hij" />
<asp:BoundField DataField="xyz" HeaderText="xyz" />
<asp:BoundField DataField="eee" HeaderText="eee" />
<asp:BoundField DataField="era" HeaderText="era" />
<asp:BoundField DataField="nai" HeaderText="nai" />
<asp:BoundField DataField="fac" HeaderText="fac" />
<asp:TemplateField>
<ItemTemplate>
<div runat="server" style="visibility:hidden" id="hideme">
<asp:Label ID="lbllunch" runat="server" Text='<%# Eval("hij") %>' />
<asp:Label ID="lbllunchoverage" runat="server" Text='<%# Eval("xyz") %>' />
<asp:Label ID="lbleee" runat="server" Text='<%# Eval("eee") %>' />
<asp:Label ID="lblera" runat="server" Text='<%# Eval("era") %>' />
<asp:Label ID="lblnai" runat="server" Text='<%# Eval("nai") %>' />
<asp:Label ID="lblfac" runat="server" Text='<%# Eval("fac") %>' />
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
编辑
我将 .Visible
命令添加到我的页面加载事件(我总是在我的页面上隐藏任何内容),如下所示:
protected void Page_Load(object sender, EventArgs e)
{
hideme.Visible = false;
/More here
}
最佳答案
由于 hideme
在 GridView TemplateField 中,您不能在 Page_Load
方法中访问它,但是您可以在 GridView1_RowDataBound
方法中访问它如下
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// find the hideme div
HtmlGenericControl div = (HtmlGenericControl)e.Row.FindControl("hideme");
// set the visible property
div.Visible = false;
}
}
关于c# - 隐藏网格中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32815193/