請遍歷頁面上所有的TextBox控件并給它賦值為string.Empty
網上能查到的一些解法的問題
第一種,遍歷this.Controls
代碼如下:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
foreach
?(Control?ctl?
in
?
this
.Controls)
{?
if
?(
typeof
(ctl)
==
typeof
(TextBox))
.



這樣并不能遍歷整個頁面中的TextBox
- this.Controls只是包含了Page根一級的control,這樣次級的control就都沒有遍歷
- TextBox一般會放在form里面,遍歷this.Controls只會訪問form control,而不會訪問form的子contorl,其中的TextBox
第二種,遍歷Controls[1]
代碼如下:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
for
(
int
???i
=
0
;i
<
inPage.Controls[
1
].Controls.Count;i
++
)??
??
{??
??
if
(inPage.Controls[
1
].Controls[i].GetType().ToString()
==
"
System.Web.UI.WebControls.TextBox
"
)??



同樣的情況:
- 這種代碼沒有通用性,你怎么就知道Control[1]正是你要遍歷的collection
- 次級的control都沒有遍歷
我認為正確的做法:使用遞歸對頁面control樹進行完全遍歷,并對每一個control進行處理。遞歸算法如下:
- 傳入page的this.Colletions
- 對每一個contorl,如果contorl沒有包含子control,進行處理。
- 如果包含,遞歸調用這個函數處理子control
代碼:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
????
private
?
void
?InitialControl(ControlCollection?objControlCollection)
????
{
????????
foreach
?(System.Web.UI.Control?objControl?
in
?objControlCollection)
????????
{
????????????
if
?(objControl.HasControls())
????????????
{
????????????????InitialControl(objControl.Controls);
????????????}
????????????
else
????????????
{
????????????????
if
?(objControl?
is
?System.Web.UI.WebControls.TextBox)
????????????????
{
????????????????????((TextBox)objControl).Text?
=
?String.Empty;
????????????????}
????????????}
????????}
????}

















更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
