c#中如何通过web控件名得到该web控件的属性

解决方案 »

  1.   

    http://blog.csdn.net/rickjelly2004/archive/2005/08/23/462988.aspx
      

  2.   

    private void Page_Load(object sender, System.EventArgs e) 

     DataTable dt; 
     dt = GetClassName("webcontrol"); 
     for (int i = 0; i <= dt.Rows.Count - 1; i++) { 
       if (dt.Rows(i)(0).ToString.ToLower == "textbox") { 
         SetClassPropertyValue(dt.Rows(i)(2), "text", "123"); 
       } 
     } 
    } private DataTable GetClassName(string namespacestr) 

     System.Reflection.Assembly a; 
     Type t; 
     DataTable dt; 
     DataRow dr; 
     dt = new DataTable(); 
     dt.Columns.Add(new DataColumn("ClassName")); 
     dt.Columns.Add(new DataColumn("ClassFullName")); 
     dt.Columns.Add(new DataColumn("InstanceClass")); 
     a = System.Reflection.Assembly.Load(namespacestr); 
     foreach (int t in a.GetExportedTypes) { 
       if (t.IsClass) { 
         dr = dt.NewRow; 
         dr("ClassName") = t.Name; 
         dr("ClassFullName") = t.FullName; 
         dr("InstanceClass") = a.CreateInstance(t.FullName); 
         dt.Rows.Add(dr); 
         dt.AcceptChanges(); 
       } 
     } 
     return dt; 
    } private void SetClassPropertyValue(Type t, string propertyStr, string value) 

     System.Web.UI.ControlCollection cc; 
     System.ComponentModel.PropertyDescriptor pd; 
     System.ComponentModel.PropertyDescriptorCollection pdc; 
     pdc = System.ComponentModel.TypeDescriptor.GetProperties(t); 
     pd = pdc.Find(propertyStr, false); 
     pd.SetValue(t, value); 
    }
      

  3.   

    http://blog.csdn.net/chenyuming2004/archive/2005/06/06/388665.aspx看看这篇文章.