2012-03-05 93 views
0

多年来,必须有十二种方法来显示/隐藏行或向服务器上的ASP.NET中的客户端显示/隐藏页面部分,或者通过JavaScript等客户端方法进行显示/隐藏。下面是一些我所使用的方法:以下哪种方法是在ASP.NET中显示/隐藏行的正确方法?

  • ASP.NET表,用。可见真/假的行服务器端
  • ASP.NET的MultiView - 全有或全无那种控制,以使各行必须成为MV。更多的corase颗粒选项国际海事组织。
  • 设置标记HTML表的Runat =“服务器”,以maipulate。可见真/行上服务器端的虚假或者直接或者通过添加CSS属性,如:Me.tr1.Attributes("class") = "ShowRows"
  • 与CSS HTML表显示/隐藏和客户端的JavaScript显示行。当服务器端结果指示何时显示/隐藏在客户端的JS中时,获得更多的参与。
  • 像Accordian或CollapsiblePanel这样的Ajax Control Toolkit控件。
  • 的jQuery与.find()来获取到正确的,然后.show()

...,也许很多很多。大多数情况下,服务器端动作至少会在UI中显示/隐藏行时给我指示,因此我通常倾向于服务器端选项,但我想获得一些有关这些方法中哪一个是最有利的,为什么我可以更多地构成我的做法。

谢谢!

+0

作为我自己评论中的后续内容,我更喜欢在JavaScript中尽可能简单地进行客户端操作,甚至更好地使用jQuery JS库,而不是仅仅为了执行UI操作而花费昂贵的服务器行程。 – atconway 2012-06-05 19:48:01

回答

1

这取决于您对隐藏/显示的字段所做的操作。

考虑决定是否使用服务器或客户端时,以下几点:

  • 隐藏控制服务器端从不给客户端,所以它们的值不贴。
  • 显示/隐藏服务器端的控件需要回发来切换其可见性。
  • 控制隐藏的客户端允许您显示/隐藏,而不需要回帖。

如果你只是改变一个css类服务器端,没有必要往返一个可以轻松完成客户端的事情。

考虑如何切换客户端决定何时执行以下操作:如果您已经使用jQuery

  • jQuery的显示/隐藏/切换方法都是伟大的。
  • 如果您想以简单的方式显示/隐藏,Ajax Control Toolkit控件非常棒。但是如果你已经在使用jQuery,那没有任何意义。
  • 切换css类(例如class="hidden")对于使用vanilla javacript非常容易。

但最终归结到你想要在你的特定场景中对你的控件做什么。对于每种情况都没有确切的答案。

+0

我认为“控制隐藏的服务器端从未提供给客户端,所以他们的价值不张贴”这一事实可能是最重要的决定因素,并会帮助我决定未来。我还想看看是否有任何明显的“不,不要使用ASP桌子!”或者是那种没有的反应。 – atconway 2012-03-05 20:13:54

1

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

1

正如其他人所说,这取决于你的最终目标是什么。对我而言,关键是你是否需要客户端的UI元素。因此,如果您最终可能需要向用户重新显示这些行,则可以采用在服务器端的行上设置css类的路由,以便它们显示为初始隐藏的,但可以重新显示为客户端脚本在稍后的时间。或者,如果他们永远不需要向用户显示,则可以采用.Visible = false路由,服务器端......或者将其更进一步,并且myabe这些行应该从最终填充表的查询中筛选出来。

相关问题