display:none 和visible:false 的區別(轉)

iDotNetSpace發表於2010-06-08
天遇到一個需求,把原先表單上需要輸入的一個項隱藏起來,考慮有2種方法:

首先說一下頁面佈局,這個輸入項是一個TextBox,放在一個Table裡的一個TR下的TD裡,所以可以對TR進行隱藏

 

一種:把TR的display改為none

另外一種:把TR的visible改為false

 

經過測試,2種方法都可以隱藏裡面的控制元件,但是稍有區別:

像大多數網上其他文章說的那樣,第一種僅僅是隱藏了控制元件,但是html程式碼依然生成,也就是我裡面的textBox還是會生成input控制元件,而第二種就直接不生成html控制元件了。

 

看到這裡還沒完,也許你會覺得以後遇到這個需求,採用那一種方法都沒問題,但是我這裡比較特殊,我的TextBox後面還有個驗證控制元件,這個控制元件是原來用來驗證使用者必須輸入這個專案的。現在如果採用第一種方法,會有這個問題:

畫面上看不到輸入項,但是點選確定按鈕始終看不到頁面提交。

 

產生這個問題的原因是:該驗證控制元件並沒有消失,只是被強制不顯示了,導致使用者也不知道哪裡出了問題。

 

如果採用第二種方法,就不存在這個問題,因為在html程式碼里根本沒有產生這個驗證控制元件,所以仍然是可以提交頁面的。

 

 

綜上所述,如果你的程式碼中存在驗證控制元件,建議還是採用第二種方法,除非你願意頻繁修改你的程式碼結構。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-664730/,如需轉載,請註明出處,否則將追究法律責任。

相關文章