用户控件声明的属性怎么在.aspx.cs中赋值?

sprc_lcl 2006-06-19 11:58:51
用户控件声明的属性怎么在.aspx.cs中赋值?
用户控件声明属性如下:
public string typeid = "";

public string gettypeid
{
get
{
return typeid;
}
set
{
typeid = value;
}
}

我想在.aspx.cs中实现
uc1.typeid = "2";这样的操作应该怎么写
Attribute.add不行
...全文
283 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sprc_lcl 2006-06-21
  • 打赏
  • 举报
回复
谢谢,问题解诀,感谢,谢谢
sprc_lcl 2006-06-20
  • 打赏
  • 举报
回复
如果我在页面上直接这么写如下:
<uc1:proexample id="Proexample1" runat="server" typeid="3"></uc1:proexample>
其中的typeid="3" 就可以取出来。

但在CS中:
protected System.Web.UI.UserControl Proexample1;

private void Page_Load(object sender, System.EventArgs e)
{
//这其中
Proexample1.gettypeid = "3";//错误,没显示出来此属性,编译不过去
Proexample1.typeid = "3";//错误,没显示出来此属性,编译不过去
}

疯狂秀才2018 2006-06-20
  • 打赏
  • 举报
回复
uc.gettypeid="XXX";
这样就是在为typeid符值
typeid最好声明为private
ccwq 2006-06-20
  • 打赏
  • 举报
回复
晕。。。这样当然显示不出来了,你是用FindControl,它还没找到怎么显示?
sprc_lcl 2006-06-20
  • 打赏
  • 举报
回复
***************声明的属性在CS中显不出来**********
UserControl uc=(UserControl)this.FindControl("UserControl1");

uc.属性="XXX";

谁能把uc.typeid这么写上编译不报错!!
Mister 2006-06-20
  • 打赏
  • 举报
回复
Control mControl = Page.FindControl("用户控件");
Type mControlType = mControl.GetType();

// 访问用户控件的属性
PropertyInfo mUCDisableItem = mControlType.GetProperty("属性名称");
mUCDisableItem.SetValue(mControl, 属性值, 索引) // 无“索引”赋值为 null
// 读取属性用:GetValue 详见 MSDN

// 访问用户控件的方法
MethodInfo mUCMethod = mControlType.GetMethod("方法名称");
mUCMethod.Invoke(mControl, 参数数组);
sprc_lcl 2006-06-20
  • 打赏
  • 举报
回复
Mister(菜青虫)
弄不出来,帮一下,给个例子
flamelp 2006-06-20
  • 打赏
  • 举报
回复
加入:
[Bindable(true),Category("Appearance"),DefaultValue("")]
Mister 2006-06-20
  • 打赏
  • 举报
回复
对于容器 Web Form 来说, Web 用户控件是一个完全未知的黑盒子,所以就必须使用“反应”(Reflection)的机制,所谓的“反应”,指的是以代码动态探索对像类型与显示成员的过程,在 .NET Framework 的 System.Reflection 命名空间,提供了 PropertyInfo 与 MethodlInfo 两个类,并分别包含了 SetValue 与 Invoke 两个静态方法用来访问 Web 用户控件的属性、方法,原形声明如下:

public void SetValue(object obj, object value, object[] index)
public object Invoke(object obj, object[] parameters)

使用如下:
1) 以 Page.FindControl 方法,获取 Web 用户控件的运行实例。
2) 调用该控件的 GetType 方法,获取 Web 用户控件的类型。
3) PropertyInfo 可以利用步骤 2 类型对象的 GetProperty 方法,传递属性的名称作为参数,以便随后调用 SetValue 方法。
4) MethodInfo 则可以利用步骤 2 类型对象的 GetMethod 方法,传递方法的名称作为参数,以便随后调用 Invoke 方法。
sprc_lcl 2006-06-19
  • 打赏
  • 举报
回复
声明的属性在CS中显不出来 知道答案的说简洁点,我想我会明白的
Lcindep110 2006-06-19
  • 打赏
  • 举报
回复
protected 用户控件所在的名称空间 usercontrol1 //这个名字要与页面的用户控件名字一致,否则要出错的。

usercontrol1.gettypeid = "2"

private string typeid = "";

public string gettypeid
{
get
{
return typeid;
}
set
{
typeid = value;
}
}
lizheng__114 2006-06-19
  • 打赏
  • 举报
回复
ding
loveyzy 2006-06-19
  • 打赏
  • 举报
回复
hxling1981(冷雨星空)说得不是很清楚了嘛
sprc_lcl 2006-06-19
  • 打赏
  • 举报
回复
。。
sprc_lcl 2006-06-19
  • 打赏
  • 举报
回复
......... ***************声明的属性在CS中显不出来**********
疯狂秀才2018 2006-06-19
  • 打赏
  • 举报
回复
例如:
用户控件文件名:UserControl.ascx

UserControl uc=(UserControl)this.FindControl("UserControl1");

uc.属性="XXX";

这样就可以了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧