2012-08-22 36 views
3

重複問題:創建一個標籤並從代碼隱藏更新其文本或創建多個標籤並根據需要顯示/隱藏標籤會更好嗎?創建一個標籤並從代碼隱藏更新其文本或創建多個標籤並根據需要顯示/隱藏標籤會更好嗎?

案例:一個標籤,從代碼隱藏

  • 只有一個aspx頁面,這使頁面輕質上創建標籤的更新。
  • 代碼在.aspx頁面以及代碼隱藏頁面上保持乾淨。
  • 錯誤或多個文本/標籤顯示的機會被最小化。

案例:多標籤與文本,從代碼隱藏

  • 所有可能的文本顯示/隱藏標籤是從.aspx頁面中已經顯現;更新不需要重新編譯。

我看到兩種方法的優點和缺點。我無法決定採取哪種方法。也許,這取決於有多少不同的可能的文本選擇,但什麼是一個好的一般經驗法則?

+1

做任何增加可讀性,不關心性能(因爲控制器'Visible = false'根本不會被渲染,所以實際上沒有區別。爲一個主題使用一個標籤。 –

回答

2

我從維護角度思考這個問題。如果你的屏幕上有很多標籤,並且隱藏/顯示它們,那麼代碼會非常混亂,我想殺了你。另外請記住,ASP.Net webforms必須以viewstate的形式抽取所有服務器端控件的狀態。更多視圖狀態意味着較慢的頁面。

+0

_「更多視圖狀態意味着較慢的頁面。」_你能更詳細地解釋這一點嗎?你的觀點並不十分清楚。 –

+0

ASP.Net使用ViewState記住在與服務器控件交互之間,每個頁面上的控件狀態。記住網絡是無國籍的。沒有辦法記住回發到同一頁面時按鈕的文字。網絡服務器正在響應請求。沒有辦法訪問保存按鈕文本值的內存,因爲沒有。 Webforms嘗試通過將所有服務器控件的狀態發送到名爲viewstate的加密區域中的頁面來爲您提供此信息。當您回發到同一頁面時,視圖狀態也會被張貼... – uriDium

+0

webforms可以找出狀態,並在您的內存中重新創建它。更多的服務器端控件=更多的視圖狀態必須來回發送。 – uriDium

0

我會去一個控制。

Tim - >當可見設置爲false時,控件將不會呈現,但它們將在服務器端初始化。所以有一些區別。

+0

我想最後的答案會歸結爲:這取決於。例如。如果我不關心服務器資源,但是經常更改文本的要求,那麼可以創建多個標籤。另一方面,我總是可以創建一個標籤,並從web.config中將文本從w/o編譯更新。在這一點上,我傾向於一個標籤。 @Tim這也增加了可讀性,並且對維護有益。 – Tom