如何隐藏HTML表行<;tr>;aspx文件中,并在代码隐藏中启用
本文关键字:隐藏 何隐藏 文件 启用 代码 aspx gt 表行 HTML lt tr | 更新日期: 2023-09-27 18:27:17
我有一个非常小的搜索功能,我有一行名为"搜索结果"的表,我希望每当我从搜索结果中有东西要显示时,都能显示这行表。所以我想在默认情况下隐藏此行,并在搜索获取结果时通过代码隐藏启用。
<div>
<table>
<tr id="srchResultHeader" style="display: none;" class="header">
<td colspan="2" class="tdlogintitle" visible="false">Search Results</td>
</tr>
<tr>
<td>/*Data to display actual result from database*/</td>
</tr>
</table>
</div>
我的代码隐藏中无法获得上面表id"srchResultHeader"的引用?我的代码中出现了什么问题。
id
本身只是一个客户端标识符。为了将其作为服务器端对象引用,它需要是服务器端控件。最简单的方法就是在现有元素上添加runat="server"
:
<tr runat="server" id="srchResultHeader" style="display: none;" class="header" >
在这种情况下,您可能甚至不需要style
属性,因为您正在控制服务器端代码中的隐藏/显示功能。您只需在控件上设置.Visible
,就可以确定它是否呈现给客户端标记。
您可以将服务器端<asp:Table>
用于此目的。否则,<tr>
是客户端的东西,不能在服务器端代码中直接访问。<asp:Table>
将在客户端呈现<table>
标记,但您可以通过其ID
在代码后面访问它。结构如下:
<asp:Table ID="MyTable" runat="server">
<asp:TableRow runat="server" ID="MyRow1">
<asp:TableCell>Some value</asp:TableCell>
</asp:TableRow>
</asp:Table>
你现在可以在后面的代码中写这样的东西:
MyRow1.Visible = False;
.aspx
<tr id="divDriverName1" runat="server" >
<td >
<label class=" ">label1 </label>
<asp:TextBox ID="TextBox1" runat="server" class=" form-control"></asp:TextBox>
</td>
</tr>
.aspx.cs
ContentPlaceHolder myPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
HtmlTableRow ct = (myPlaceHolder.FindControl("divDriverName1")) as HtmlTableRow;
divDriverName1.Attributes.Add("style", "display:none");
<div class="row" id="divhiddenInfo2" runat="server" style="display: none">
</div>