遍历获取ASP.NET页面控件的名称及值

逛csdn的时候碰见有人在求助这个问题,特分享一下经验。
如果直接用Page.Control 获取的到只是最顶层的页面元素,而真正的拖拉放上去的文本框或Label之类的控件,还隐藏在这些顶层页面元素的里面,所以需要再次遍历。
函数及使用方法如下,结果保存在这里选择了HashTable的方式。

遍历获取ASP.NET页面控件的名称及值protected void Page_Load(object sender, EventArgs e)
遍历获取ASP.NET页面控件的名称及值遍历获取ASP.NET页面控件的名称及值    
遍历获取ASP.NET页面控件的名称及值{
遍历获取ASP.NET页面控件的名称及值        getAllControlValue(
this);
遍历获取ASP.NET页面控件的名称及值    }

遍历获取ASP.NET页面控件的名称及值
遍历获取ASP.NET页面控件的名称及值    Hashtable getAllControlValue( 
object PageOrUserControl )
遍历获取ASP.NET页面控件的名称及值遍历获取ASP.NET页面控件的名称及值    
遍历获取ASP.NET页面控件的名称及值{
遍历获取ASP.NET页面控件的名称及值        Hashtable rtn 
= new Hashtable();
遍历获取ASP.NET页面控件的名称及值
遍历获取ASP.NET页面控件的名称及值        
foreach (Control ctr in (PageOrUserControl as Page).Controls)
遍历获取ASP.NET页面控件的名称及值遍历获取ASP.NET页面控件的名称及值        
遍历获取ASP.NET页面控件的名称及值{
遍历获取ASP.NET页面控件的名称及值            getControlValue(ctr, rtn);
遍历获取ASP.NET页面控件的名称及值        }

遍历获取ASP.NET页面控件的名称及值
遍历获取ASP.NET页面控件的名称及值        
return rtn;
遍历获取ASP.NET页面控件的名称及值    }

遍历获取ASP.NET页面控件的名称及值
遍历获取ASP.NET页面控件的名称及值    
void getControlValue(Control ctrIn,Hashtable ht)
遍历获取ASP.NET页面控件的名称及值遍历获取ASP.NET页面控件的名称及值    
遍历获取ASP.NET页面控件的名称及值{
遍历获取ASP.NET页面控件的名称及值        
foreach (Control ctr in ctrIn.Controls)
遍历获取ASP.NET页面控件的名称及值遍历获取ASP.NET页面控件的名称及值        
遍历获取ASP.NET页面控件的名称及值{
遍历获取ASP.NET页面控件的名称及值            Type controlType 
= ctr.GetType();
遍历获取ASP.NET页面控件的名称及值
遍历获取ASP.NET页面控件的名称及值            
switch (controlType.ToString())
遍历获取ASP.NET页面控件的名称及值遍历获取ASP.NET页面控件的名称及值            
遍历获取ASP.NET页面控件的名称及值{
遍历获取ASP.NET页面控件的名称及值                
case "System.Web.UI.WebControls.TextBox":
遍历获取ASP.NET页面控件的名称及值                    TextBox controlTextBoxObj 
= (TextBox)ctr;
遍历获取ASP.NET页面控件的名称及值                    
string controlTextBoxName = controlTextBoxObj.ID;
遍历获取ASP.NET页面控件的名称及值                    
string controlTextBoxValue = controlTextBoxObj.Text;
遍历获取ASP.NET页面控件的名称及值                    ht.Add(controlTextBoxName, controlTextBoxValue);
遍历获取ASP.NET页面控件的名称及值                    
break;
遍历获取ASP.NET页面控件的名称及值                
case "System.Web.UI.WebControls.Label":
遍历获取ASP.NET页面控件的名称及值                    Label controlLabelObj 
= (Label)ctr;
遍历获取ASP.NET页面控件的名称及值                    
string controlLabelName = controlLabelObj.ID;
遍历获取ASP.NET页面控件的名称及值                    
string controlLabelValue = controlLabelObj.Text;
遍历获取ASP.NET页面控件的名称及值                    ht.Add(controlLabelName, controlLabelValue);
遍历获取ASP.NET页面控件的名称及值                    
break;
遍历获取ASP.NET页面控件的名称及值                
//case "其他类型":
遍历获取ASP.NET页面控件的名称及值                
//    其它类型 controlTextBoxObj = (其它类型)ctr;
遍历获取ASP.NET页面控件的名称及值                
//    string controlTextBoxName = controlTextBoxObj.ID;
遍历获取ASP.NET页面控件的名称及值                
//    string controlTextBoxValue = controlTextBoxObj.Text;
遍历获取ASP.NET页面控件的名称及值                
//    ht.Add(controlTextBoxName, controlTextBoxValue);
遍历获取ASP.NET页面控件的名称及值                
//    break;
遍历获取ASP.NET页面控件的名称及值
                default:
遍历获取ASP.NET页面控件的名称及值                    
break;
遍历获取ASP.NET页面控件的名称及值            }

遍历获取ASP.NET页面控件的名称及值        }

遍历获取ASP.NET页面控件的名称及值    }
上一篇:Dubbo负载均衡及动态代理的策略


下一篇:突破Java面试(23-8) - Redis哨兵主备切换的数据丢失问题