如何在aspx.cs里给用户控件的自定义属性动态赋值?

chezeqiang 2010-07-09 10:32:58

//用户控件
public partial class Usercontrol_PageIndex2 : System.Web.UI.UserControl
{
private string _controlName = "";
public string ControlName
{
get { return _controlName; }
set { _controlName = value; }
}
}

//页面后台
public partial class CommunicationSpace : System.Web.UI.Page
{
Usercontrol_PageIndex2 buc = (Usercontrol_PageIndex2)Page.LoadControl("PageIndex2.ascx");
buc.ControlName = "aaa";//这样赋值没用,用户控件加载时ControlName还是空值
}


很困惑。希望有人指点迷津,谢谢
...全文
316 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chezeqiang 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 kevin_cheung 的回复:]
因为你在这里注册时候 已经设置他的ID了 比如ID="ctrlName"

那么赋值就是 ctrlName.属性名=属性值;

例如 ctrlName.SelectedDay = DateTime.Now.ToString();

上边的我都是专门为你写的 作过测试的 绝对可以运行
[/Quote]

真可以嘿。
谢谢了啊。
LovingAlison 2010-07-09
  • 打赏
  • 举报
回复
因为你在这里注册时候 已经设置他的ID了 比如ID="ctrlName"

那么赋值就是 ctrlName.属性名=属性值;

例如 ctrlName.SelectedDay = DateTime.Now.ToString();

上边的我都是专门为你写的 作过测试的 绝对可以运行
chezeqiang 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kevin_cheung 的回复:]
引用 5 楼 chezeqiang 的回复:
请问,是这样赋值吗?
报错,未将对象引用到实例


1。创建一个WebUserControl1.ascx 应该没有问题把
2。在其中加入属性
public string SelectedDay
{
get
{
return ViewState["selectedDay"] == null ? DateTime.No……
[/Quote]

等等啊。
我去试试
LovingAlison 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chezeqiang 的回复:]
请问,是这样赋值吗?
报错,未将对象引用到实例
[/Quote]

1。创建一个WebUserControl1.ascx 应该没有问题把
2。在其中加入属性
public string SelectedDay
{
get
{
return ViewState["selectedDay"] == null ? DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day : ViewState["selectedDay"].ToString();
}
set
{
ViewState["selectedDay"] = value;
}
}
3.注册其到web页面
<%@ Register Src="~/WebUserControl1.ascx" TagName="WebUserControl1" TagPrefix="uc2" %>
4.在页面中添加这个控件
<uc2:WebUserControl1 ID="a" Visible=true EnableViewState=true runat="server" />
5.给这个属性赋值a.SelectedDay = DateTime.Now.ToString();
6.这40分我全要了
cyljay 2010-07-09
  • 打赏
  • 举报
回复
<%@ Register Src="Usercontrol_PageIndex2 .ascx" TagName="Page" TagPrefix="uc1" %>
这是你当前要引用用户控件页面的前台注册代码。

有两种方式引用usercontrol的属性。

常规方式:userpage.ProcName

前台页面赋值方式
<uc1:Page ID="userPage" runat="server" ProcName="dep"/ ProcName='<%=dep%>' ProcNameCN="money"/>
红色部分是你在usercontrol 里定义的属性
chezeqiang 2010-07-09
  • 打赏
  • 举报
回复
顶顶顶顶
chezeqiang 2010-07-09
  • 打赏
  • 举报
回复
public string ControlType
{
get { return ViewState["ControlType"].ToString(); }
set { ViewState["ControlType"] = value; }
}
chezeqiang 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kevin_cheung 的回复:]
会被刷新的 就不要用变量了啊

用ViewState


C# code

public string SelectedDay
{
get
{
return ViewState["selectedDay"] == null ? DateTime.Now.Year +……
[/Quote]



Usercontrol_PageIndex2 buc = (Usercontrol_PageIndex2)Page.LoadControl("Usercontrol/PageIndex2.ascx");

buc.ControlType = "asdasdasdasdas";

请问,是这样赋值吗?
报错,未将对象引用到实例
LovingAlison 2010-07-09
  • 打赏
  • 举报
回复
一楼这个说的 不注册他怎么能知道没赋值上去呢?
chezeqiang 2010-07-09
  • 打赏
  • 举报
回复
顶顶顶顶
LovingAlison 2010-07-09
  • 打赏
  • 举报
回复
会被刷新的 就不要用变量了啊

用ViewState


public string SelectedDay
{
get
{
return ViewState["selectedDay"] == null ? DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day : ViewState["selectedDay"].ToString();
}
set
{
ViewState["selectedDay"] = value;
}
}
cyljay 2010-07-09
  • 打赏
  • 举报
回复
前台注册了吗?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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