我有一个(html)表(下面的示例布局),我想在某些条件下隐藏最后两列,使用C#codebehind。我不希望通过将列的宽度缩小到0来做到这一点,尽管我并没有把它排除在外。没有任何CSS类真正提供给大多数行而没有列。我尝试使用colgroup将显示设置为none以及隐藏在colgroup上的可见性,但没有运气。
_____________
|__|__|__|__|
|__|__|__|__|
|__|__|__|__|
到
_______
|__|__|
|__|__|
|__|__|
有什么想法吗?
答案 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提供了对同一查询的更好解决方案。
它使您可以选择按列名或索引显示/隐藏任何列。该代码还可以处理合并的列(列范围)方案。