我有gridview,我想根据后面代码中的条件显示/隐藏其中一个
<ItemTemplate>
<asp:TextBox ID="Q1TB" runat="server" Text='<%# Bind("Q1") %>'></asp:TextBox>
<asp:label ID="Q1LB" runat="server" Text='<%# Bind("Q1") %>'></asp:label>
</ItemTemplate>
尝试了许多事情,但没有成功
编辑:
在RowDataBound中尝试
e.Row.FindControl("Q1TB").Visible = False
未将Object引用设置为对象的实例。错误
还尝试将样式更改为显示为无错误
e.Row.FindControl("Q1TB").Style.Add("display", "none")
Style不是style.web.ui.control
的成员答案 0 :(得分:0)
试试这个
设计页面
<GridView ID="MyGridView" OnDataBound="GridView_DataBound">
<强>代码隐藏: - 强>
protected void GridView_DataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Set condition here)
{
MyGridView.Columns[1].Visible = false;
MyGridView.Columns[2].Visible = false;
}
}
}
答案 1 :(得分:0)
在数据绑定中尝试:
TextBox tempText = e.Item.FindControl("Q1TB") as TextBox;
tempTex.Visible = False;
答案 2 :(得分:0)
如果目的是显示或隐藏页面的一部分,那么您可以执行以下操作
1)用
将其包装在标记中<% if(somecondition) { %>
some html
<% } %>
<ItemTemplate>
<%
if(condition)
{%>
<asp:TextBox ID="Q1TB" runat="server" Text='<%# Bind("Q1") %>'></asp:TextBox>
<% }
else
{
%>
<asp:label ID="Q1LB" runat="server" Text='<%# Bind("Q1") %>'></asp:label>
<% } %>
</ItemTemplate>