【用户控件】如何在后台代码中设置和获取用户控件中的子控件的属性?

时间:2023-01-23 00:56:44
请问:
1、如何在后台代码中设置和获取用户控件中的子控件的属性?
2、如何在后台设置和获取用户控件本身的属性?
   我在以前的一些帖子中也看到类似的问题和回复,大多使在前台页面实现。
而在后台实现的方法则鲜有提及……
   欢迎大家就此做一下讨论,并产生出一个较好的solution :)
   请各位高手,不吝赐教!

8 个解决方案

#1


供大家参考
“我在用户控件中有一个公用的属性和公用的方法,在调用他的页面中可以访问,但是在后置代码文件中确无法访问到这个用户控件。”
http://expert.csdn.net/Expert/topic/1989/1989975.xml?temp=.6281244

#2


这个别人不都有写的么,定义一下不就可以了?
protected YouUserControlClass control1;

#3


把属性嵌套起来嘛~
很简单的~
我现在的项目用户控件不知道嵌套了多少层。

#4


有没有相应的例子可供参考?(40分奉送 ^_^)

#5


crodling(蓝风) ( ) 说得对

#6


>>>1、如何在后台代码中设置和获取用户控件中的子控件的属性?

add public properties/methods in your codebehind class for your usercontrol and declare in your page class:

protected YourUserControlCodeBehindClass YourUserControlID;

..

if you don't have a  codebehind class, you can always do

UserControl c = (UserControl)FindControl("YourUserControlID");

TextBox tb = (TextBox) c.FindControl("YourTextBoxIDInYourUserControl);
tb.Text = "123";

>>>2、如何在后台设置和获取用户控件本身的属性?

if you have a codebehind class for your usercontrol, you can do
protected YourUserControlCodeBehindClass YourUserControlID;

YourUserControlID.Property1 = "123";

otherwise, you have to use Reflection

#7


谢谢 saucer(思归) 
我试了一下,你的方法可以。



此问题基本得到了解决。
菜鸟还有些疑问,Usercontrol的功能是不是有些太有限了一点?与内嵌组件相比,无论属性还是方法似乎都不够强大 -_-

#8


顾名思义,UserControl是以界面为主的,但你可以在你的UserControl加属性/方法/事件,因为本质上,UserControl也是一个类而已

UserControl的缺陷在于设计时的支持差,不能共享于不同项目,但它简单,易设计/修改,对技术人员的要求也不高

#1


供大家参考
“我在用户控件中有一个公用的属性和公用的方法,在调用他的页面中可以访问,但是在后置代码文件中确无法访问到这个用户控件。”
http://expert.csdn.net/Expert/topic/1989/1989975.xml?temp=.6281244

#2


这个别人不都有写的么,定义一下不就可以了?
protected YouUserControlClass control1;

#3


把属性嵌套起来嘛~
很简单的~
我现在的项目用户控件不知道嵌套了多少层。

#4


有没有相应的例子可供参考?(40分奉送 ^_^)

#5


crodling(蓝风) ( ) 说得对

#6


>>>1、如何在后台代码中设置和获取用户控件中的子控件的属性?

add public properties/methods in your codebehind class for your usercontrol and declare in your page class:

protected YourUserControlCodeBehindClass YourUserControlID;

..

if you don't have a  codebehind class, you can always do

UserControl c = (UserControl)FindControl("YourUserControlID");

TextBox tb = (TextBox) c.FindControl("YourTextBoxIDInYourUserControl);
tb.Text = "123";

>>>2、如何在后台设置和获取用户控件本身的属性?

if you have a codebehind class for your usercontrol, you can do
protected YourUserControlCodeBehindClass YourUserControlID;

YourUserControlID.Property1 = "123";

otherwise, you have to use Reflection

#7


谢谢 saucer(思归) 
我试了一下,你的方法可以。



此问题基本得到了解决。
菜鸟还有些疑问,Usercontrol的功能是不是有些太有限了一点?与内嵌组件相比,无论属性还是方法似乎都不够强大 -_-

#8


顾名思义,UserControl是以界面为主的,但你可以在你的UserControl加属性/方法/事件,因为本质上,UserControl也是一个类而已

UserControl的缺陷在于设计时的支持差,不能共享于不同项目,但它简单,易设计/修改,对技术人员的要求也不高