如何在aspx文件中隐藏HTML表格行并在代码后面启用?

时间:2014-10-21 17:52:53

标签: c# asp.net

我有一个非常小的搜索功能,我有一个名为“搜索结果”的表格行,我希望每当我从搜索结果中显示某些内容时,都会显示此表格行。因此,我希望默认隐藏此行,并在搜索获取某些结果时通过代码启用。

<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”的引用?我的代码中有什么问题。

4 个答案:

答案 0 :(得分:15)

id本身只是一个客户端标识符。为了将其作为服务器端对象引用,它需要是服务器端控件。最简单的方法是在现有元素上添加runat="server"

<tr runat="server" id="srchResultHeader" style="display: none;" class="header" >

在这种情况下,您可能甚至不需要style属性,因为您正在控制服务器端代码中的隐藏/显示功能。您可以在控件上设置.Visible以确定它是否呈现给客户端标记。

答案 1 :(得分:2)

您可以将服务器端<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;

答案 2 :(得分:2)

的.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");

答案 3 :(得分:0)

<div class="row" id="divhiddenInfo2" runat="server" style="display: none">
</div>