【问题标题】:Have All TD and TR Tags of HTML Table Hidden on Page Load在页面加载时隐藏 HTML 表的所有 TD 和 TR 标签
【发布时间】:2018-07-11 21:34:33
【问题描述】:

我不想隐藏表格本身,只隐藏标题和行标签。然后我想根据用户选择有条件地显示它们。是否有一个包罗万象的方法可以在页面加载时隐藏表格的所有 td 和 tr 标签?

或者我是否需要手动设置 aspx 中所有 td 和 tr 标签的 visible=false,然后在我的 aspx.cs 中设置 Visible=true 时我想显示?

【问题讨论】:

  • 向元素添加 CSS 类,然后启用/禁用更改 CSS 类的显示属性的元素

标签: c# html asp.net html-table webforms


【解决方案1】:

您可以执行以下操作:

  • 在渲染过程中,为所有 TD/TR 元素分配一个类似 hideRow 的类
  • 添加一个 CSS 类来隐藏这些元素,例如.hideRow { display: none; }
  • 如果用户选择要显示的行,则通过 JS 删除类,例如$('#ID').removeClass('hideRow');

【讨论】:

  • 我喜欢使用 css 类从一开始就隐藏所有内容的想法 - 但是否可以使用 C# 显示行并覆盖 css 类?
  • 正如你所说,这应该发生在客户端:不; C#是服务器端,JS是客户端。除非您希望保留并回发每个更改并在渲染期间读出设置...
  • 啊-很好。我不希望对所有内容进行回发。我将看看如何使用 JS 来做到这一点:)
  • 通过动态和有选择地隐藏/显示,colspan 和 rowspan 不会有问题吗?我以前从未这样做过,所以我很好奇,因为这对我来说听起来不合逻辑,这可以由 display:block/none 完成
  • @Ivan86 是的,如果你使用 colspan/rowspan 你会得到奇怪的结果。我认为 OP 不会那样做...