2009-07-27 147 views
4

我有一个(html)表格(下面的示例布局),我想在特定条件下使用C#代码隐藏来隐藏最后两列。我宁愿不通过将列的宽度缩小到0来实现这一点,尽管我并不排除它。没有任何CSS类真的提供给大多数行,也没有提供给任何列。我尝试使用colgroup将显示设置为none以及隐藏在colgroup上的可见性,但没有运气。隐藏代码隐藏列表

_____________ 
|__|__|__|__| 
|__|__|__|__| 
|__|__|__|__| 

_______ 
|__|__| 
|__|__| 
|__|__| 

有什么想法?

回答

6

假设你的表是静态的,你可以动态地应用CSS class到你想要隐藏的任何列:

<table> 
    <tr> 
     <th> 
      Visible 
     </th> 
     <th class="<%= HiddenClassName %>"> 
      Possibly hidden 
     </th> 
    </tr> 
    <tr> 
     <td> 
      Visible 
     </td> 
     <td class="<%= HiddenClassName %>"> 
      Possibly hidden 
     </td> 
    </tr> 
</table> 

在代码文件,你的财产可能是:

public string HiddenClassName { get; private set; } 

hidden风格本身:

<style type="text/css"> 
    .hidden 
    { 
     visibility: hidden; 
     display: none; 
    } 
</style> 
0

在渲染页眉和渲染列的位置,可以设置Visible =“false”。您可以使用后面的代码或在aspx页面中使用<%(bool)Eval(WantColumnsVisible)%>来正确设置Visible。

不要忘记同步呈现标题或列的所有位置,否则你会得到一些相当愚蠢的样子。

2

在aspx:

<table> 
    <tr> 
     <td style="<%= HiddenClassName %>"> 
      my content to be hidden 
     </td> 
    </tr> 
</table> 

在代码:

public class OPMRESRVA0 : System.Web.UI.Page 
    { 
     public string HiddenClassName { get; private set; } 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     HiddenClassName = "display:none"; 
     } 
    } 
+1

完美的答案我得到了解决thnqs ... – Pallavi 2014-06-16 13:15:02