怎么隐藏gridview里的div?具体问题如下所示
前台:<asp:GridViewID="paperdisplay"runat="server"AutoGenerateColumns="False"Width="700p...
前台:<asp:GridView ID="paperdisplay" runat="server" AutoGenerateColumns="False"
Width="700px" BackColor="White" BorderColor="#0066FF"
BorderStyle="Double">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<div>
<asp:Label ID="Label23" runat="server" Font-Size="Larger" ForeColor="Black"><%# Eval("papername") %></asp:Label>
</div>
</HeaderTemplate>
<ItemTemplate>
<div id="ChoiceType" runat="server" style="text-align: left;">
<asp:Label ID="Label13" runat="server"><%# Eval("describe") %></asp:Label><br />
<asp:Label ID="Label15" runat="server" Text="参考答案:" Font-Size="Medium" ForeColor="Red"></asp:Label><br />
<asp:Label ID="Label14" runat="server" ForeColor="#009900"><%# Eval("rightanswer") %></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
后台: this.paperdisplay.FindControl("ChoiceType").Visible = false;没作用,我断点测试,发现this.paperdisplay.FindControl("ChoiceType")的值为null。
恳请大牛指点 展开
Width="700px" BackColor="White" BorderColor="#0066FF"
BorderStyle="Double">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<div>
<asp:Label ID="Label23" runat="server" Font-Size="Larger" ForeColor="Black"><%# Eval("papername") %></asp:Label>
</div>
</HeaderTemplate>
<ItemTemplate>
<div id="ChoiceType" runat="server" style="text-align: left;">
<asp:Label ID="Label13" runat="server"><%# Eval("describe") %></asp:Label><br />
<asp:Label ID="Label15" runat="server" Text="参考答案:" Font-Size="Medium" ForeColor="Red"></asp:Label><br />
<asp:Label ID="Label14" runat="server" ForeColor="#009900"><%# Eval("rightanswer") %></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
后台: this.paperdisplay.FindControl("ChoiceType").Visible = false;没作用,我断点测试,发现this.paperdisplay.FindControl("ChoiceType")的值为null。
恳请大牛指点 展开
4个回答
展开全部
div在服务器运行时(runat="server")就成了HtmlGenericControl类的一个实例,它是控件。
你是想隐藏这一列吗?
如果是的话可以用
this.paperdisplay.Columns[要隐藏的列].Visible = false;
如果想隐藏内容而保留列名,就要隐藏每一行的ChoiceType,因为它位于gridview的每一行中,每行都有一个ChoiceType,而不是在gridview中。所以直接对paperdisplay进行FindControl是找不到它的。
for (int i = 0; i < GridView1.Rows.Count; i++)
{
System.Web.UI.HtmlControls.HtmlGenericControl tt = (System.Web.UI.HtmlControls.HtmlGenericControl)GridView1.Rows[i].FindControl("ChoiceType");
tt.Style.Add("display", "none");//tt.Visible = false;也可以
}
你是想隐藏这一列吗?
如果是的话可以用
this.paperdisplay.Columns[要隐藏的列].Visible = false;
如果想隐藏内容而保留列名,就要隐藏每一行的ChoiceType,因为它位于gridview的每一行中,每行都有一个ChoiceType,而不是在gridview中。所以直接对paperdisplay进行FindControl是找不到它的。
for (int i = 0; i < GridView1.Rows.Count; i++)
{
System.Web.UI.HtmlControls.HtmlGenericControl tt = (System.Web.UI.HtmlControls.HtmlGenericControl)GridView1.Rows[i].FindControl("ChoiceType");
tt.Style.Add("display", "none");//tt.Visible = false;也可以
}
展开全部
// 摘要:
// 在当前的命名容器中搜索带指定 id 参数的服务器控件。
//
// 参数:
// id:
// 要查找的控件的标识符。
//
// 返回结果:
// 指定的控件,或为 null(如果指定的控件不存在的话)。
public virtual Control FindControl(string id);
注释很清楚的写着 带 id 的服务器控件啊。你那个div 就不是个空间啊。连客户端都不是啊。所以你必须的用别的方法。
// 在当前的命名容器中搜索带指定 id 参数的服务器控件。
//
// 参数:
// id:
// 要查找的控件的标识符。
//
// 返回结果:
// 指定的控件,或为 null(如果指定的控件不存在的话)。
public virtual Control FindControl(string id);
注释很清楚的写着 带 id 的服务器控件啊。你那个div 就不是个空间啊。连客户端都不是啊。所以你必须的用别的方法。
追问
那要用什么方法啊?请大牛赐教
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对asp程序不太懂,但是可以给一个思路,把要隐藏的的层(DIV)样式设置为display:none,然后在需要显示时属性变成display:inline。希望有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询