用后面的代码隐藏表的列

时间:2009-07-27 16:48:34

标签: c# asp.net html

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

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

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

有什么想法吗?

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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";
        }
    }

答案 2 :(得分:0)

在渲染标题和渲染列的位置,可以设置Visible =“false”。您可以使用后面的代码或使用&lt;%(bool)Eval(WantColumnsVisible)%&gt;正确设置Visible。在aspx页面中。

不要忘记同步呈现标题或列的所有位置,否则你会得到一些看起来很傻的东西。

答案 3 :(得分:0)

here提供了对同一查询的更好解决方案。

它使您可以选择按列名或索引显示/隐藏任何列。该代码还可以处理合并的列(列范围)方案。