我有一个非常小的搜索功能,我有一个名为“搜索结果”的表格行,我希望每当我从搜索结果中显示某些内容时,都会显示此表格行。因此,我希望默认隐藏此行,并在搜索获取某些结果时通过代码启用。
<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”的引用?我的代码中有什么问题。
答案 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)
<tr id="divDriverName1" runat="server" >
<td >
<label class=" ">label1 </label>
<asp:TextBox ID="TextBox1" runat="server" class=" form-control"></asp:TextBox>
</td>
</tr>
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>