如何隐藏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"的引用?我的代码中出现了什么问题。

如何隐藏HTML表行<;tr>;aspx文件中,并在代码隐藏中启用

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>