哪些方法是在ASP.NET中显示/隐藏行的正确方法?

时间:2012-03-05 18:56:55

标签: asp.net

多年来,必须有十几种方法来显示/隐藏行或在服务器上的ASP.NET中向客户端显示/隐藏页面部分,或者通过JavaScript等客户端方法,我会迷失方向。以下是我使用过的几种方法:

  • ASP.NET表,在服务器端的行上为.Visible True / False
  • ASP.NET MultiView - 全部或全部控件,因此每行必须在MV中。更多的一个corase grained选项IMO。
  • 标签设置为runat =“server”的HTML表格可以直接或通过添加CSS属性(例如:Me.tr1.Attributes("class") = "ShowRows"
  • 在服务器端进行操作.Visible True / False
  • 用于显示/隐藏CSS的HTML表和用于显示行的客户端JavaScript。当服务器端结果决定何时在客户端显示/隐藏JS时,会更多地参与其中。
  • Ajax Control Toolkit控件,如Accordian或CollapsiblePanel。
  • 使用.find()获取正确的jQuery,然后使用.show()

......可能还有很多甚至更多。大多数情况下,服务器端操作至少要求我在UI中显示/隐藏行,所以我通常倾向于服务器端选项,但我想得到一些关于这些方法中哪一个最多的输入有利,为什么我可以更加方便我的方法。

谢谢!

3 个答案:

答案 0 :(得分:1)

这取决于你对隐藏/显示的字段做了什么。

在决定是使用服务器端还是客户端时,请考虑以下事项:

  • 控件隐藏服务器端永远不会提供给客户端,因此不会发布它们的值。
  • 显示/隐藏服务器端的控件需要回发以切换其可见性。
  • 控制隐藏的客户端允许您在没有回发的情况下显示/隐藏。

如果除了更改css类服务器端之外什么都不做,那么就不需要往返于客户端可以轻松完成的事情了。

在决定如何切换客户端时,请考虑以下事项:

  • jQuery show / hide / toggle方法非常棒,如果你已经在使用jQuery。
  • 如果您想要一种简单的显示/隐藏方式,Ajax Control Toolkit控件非常棒。但是如果你已经在使用jQuery,那就没有意义了。
  • 使用vanilla javacript很容易切换css类(例如class="hidden")。

但最终归结为您希望在特定场景中使用控件做什么。对于每种情况都没有明确的答案。

答案 1 :(得分:1)

没有一种“正确”的方法可以做到这一点。正确的方法取决于您需要做什么以及完成它的上下文。所有不同的选项都适用于不同的场景,您选择的是最适合和/或在当前情况下效果最佳的场景。

答案 2 :(得分:1)

就像其他人所说的那样,这取决于你的最终目标。对我来说,这真的是关于你是否需要客户端上的UI元素。因此,如果您最终可能需要向用户重新显示这些行,您可能会采取在行,服务器端设置css类的路径,以便它们显示为初始隐藏,但随后可以重新显示为客户端脚本稍后。或者,如果他们永远不需要向用户显示,您可以采用.Visible = false路由,服务器端......或者进一步采取行动,并且应该从最终填充表的查询中过滤掉那些行