ASP.NET 2.0 HtmlTable Rows - hiding without making invisible

11,372

Solution 1

To hide a complete table (but still render it to the client), wrap it in a div with style="display:none":

<div style="display:none;">
 asp.net table goes here
</div>

Although, for single rows, this does not work. You will probably have to use some javascript (e.g. jquery, as another user recommended).

Solution 2

You can set this server-side by adding a display property to the style collection. The style collection property itself is read-only (you can't replace it), but you can an element to it to reflect setting that style property.

 table.Style.Add("display","none")

or

 table.Style["display"] = "none";

The same is true for table rows as the Style collection is inherited from HtmlGenericControl.

EDIT: The HTML control needs to be runat="server" for this to work, which I'm assuming yours is since you are able to set the Visible property.

Solution 3

You could make your <tr>s server tags. To do this, change your rows in

<tr id="rowID" runat="server">

So you can access their properties, such as rowID.style or class properties.

Share:
11,372
n2009
Author by

n2009

Updated on June 14, 2022

Comments

  • n2009
    n2009 almost 2 years

    I need to find a way to hide HTML Rows (or Tables) from view without blocking them from being rendered. Setting this.myTable.Visible = false would seem to be the easiest way to hide tables from the user, but it prevents the HTML Table from being sent to the browser and that causes a problem because I am using Validators and need to make sure the non-visible elements are validated (because of page navigation logic, only some elements will be made visible to the user at a time).

    I was attempting to change the Style property but asp.net says it is read-only so I cannot make it invisible using CSS. Also I would prefer not to use Javascript but if there is a simple solution with JS that is fine.

    Any help is greatly appreciated.