2012-03-05 94 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這些行應該從最終填充表的查詢中篩選出來。

相關問題