服务器控件HtmlTable下控件赋值问题
生活随笔
收集整理的這篇文章主要介紹了
服务器控件HtmlTable下控件赋值问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???? 在程序開發過程中,碰到這樣的問題:
1<table>2??<tr>
3????<td><asp:DropDownList?id=dropdownlist1?runat=server></td>
4??</tr>
5</table> 在基類頁中有如下代碼:
1foreach(Control?pagectl?in?Page.Controls[1].Controls??)
2???{
3????if?(pagectl?is?DropDownList)
4????{(pagectl?as?DropDownList).Item.add();
5????……
6?????}
7} 如上能正常執行,但當把table轉成服務器控件時,DropDownList下拉框中的內容總為空,跟蹤調試后發現系統根本就沒有找到DropDownList控件。其原因是DropDownList控件在HtmlTable下,找到HtmlTable但不會找其下面的控件。
改后代碼如下:
?1foreach(Control?pagectl?in?Page.Controls[1].Controls??)
?2????????????????{
?3????????????????????if?(pagectl?is?System.Web?.UI?.HtmlControls?.HtmlTable?)
?4????????????????????{????????????????????????
?5????????????????????????foreach(HtmlTableRow?row?in?(pagectl?as?HtmlTable).Rows?)
?6????????????????????????{
?7????????????????????????????foreach(HtmlTableCell?cell?in?row.Cells?)
?8????????????????????????????{????????????????????????????????
?9????????????????????????????????if?(cell.Controls?.Count?!=0?&&?cell.Controls?[0]?is?DropDownList?)
10????????????????????????????????{
11????????????????????????????????????(cell.Controls?[0]?as?DropDownList?).Items?.Add?("5");
12????????????????????????????????????????}
13????????????????????????}
14????????????????????}
15????????????????} 執行后,又能正常運行。
附:遞歸方法列舉頁面所有控件,包括某些控件中的子控件,如上面所說服務器表
??????? 格控件下?的子控件:
??????? 代碼: ?1private?void?Button1_Click(object?sender,?System.EventArgs?e)
?2????????{
?3????????????DisplayControl(this.Page?);
?4????????}
?5
?6????????public?void?DisplayControl(Control?sender)
?7????????{
?8????????????foreach(Control?con?in?sender.Controls)
?9????????????{
10????????????????this.Response?.Write?(con.GetType?().ToString?()+"???"+con.UniqueID?.ToString?());
11????????????????this.Response?.Write?("<br>");
12????????????????DisplayControl(con);
13????????????}
14????????}
轉載于:https://www.cnblogs.com/jerrie/archive/2006/05/17/402698.html
總結
以上是生活随笔為你收集整理的服务器控件HtmlTable下控件赋值问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【原创】ABAP动态编程之功能实现
- 下一篇: document.body.scroll