C# aspx文件如何给用户控件的属性赋值?
我新建了一个用户控件MyDiv.ascx,在Default.aspx中用FindControl去呼叫MyDiv.ascx却返回null,这是为什么呢?部分代码Defaul...
我新建了一个用户控件MyDiv.ascx,在Default.aspx中用FindControl去呼叫MyDiv.ascx却返回null,这是为什么呢?
部分代码
Default.aspx
<%@ Register Src="Controls/MyDiv.ascx" TagName="Title" TagPrefix="WLQ" %>
...
<WLQ:Title ID="Title1" Value="要给这个属性赋值" EnableViewState="true" runat="server" />
Default.aspx.cs
Controls_MyDiv mydiv = (Controls_MyDiv)this.Page.FindControl("Title1");
这句话返回的是null
各位大大帮帮忙。。。。。
用Title1.FindControl不行,我是想给Title1的属性赋值
在Page_Load里用Title1.Value = "12131";直接赋值,正确,但是OK_Click方法里赋值返回“未将对象引用设置到对象的实例。”
bmlvy2006:我现在用动态绑定解决了,但是新的问题又出现了。
我做了个分页,但是点击下一页后,页面就刷新了,没法保持之前的数据。应该怎么办?另外,post应该怎么用? 展开
部分代码
Default.aspx
<%@ Register Src="Controls/MyDiv.ascx" TagName="Title" TagPrefix="WLQ" %>
...
<WLQ:Title ID="Title1" Value="要给这个属性赋值" EnableViewState="true" runat="server" />
Default.aspx.cs
Controls_MyDiv mydiv = (Controls_MyDiv)this.Page.FindControl("Title1");
这句话返回的是null
各位大大帮帮忙。。。。。
用Title1.FindControl不行,我是想给Title1的属性赋值
在Page_Load里用Title1.Value = "12131";直接赋值,正确,但是OK_Click方法里赋值返回“未将对象引用设置到对象的实例。”
bmlvy2006:我现在用动态绑定解决了,但是新的问题又出现了。
我做了个分页,但是点击下一页后,页面就刷新了,没法保持之前的数据。应该怎么办?另外,post应该怎么用? 展开
2个回答
展开全部
在MyDiv.ascx里面建立一属性,比如:
private string _myValue;
public string MyValue
{
get{ return _myValue; }
set{ _myValue = value; }
}
在default.aspx直接 Title1.MyValue = "初始值";
看你这里没有post操作,所有这样就可以了,反之MyDiv里面的属性需要ViewState保存值了。
-->postback值肯定没有了,所有得用viewstate保存了。
public string MyValue
{
//get里面还可以自己处理,因为你那里好像加载控件就必须赋值,所有下面的这些就可以了,要不需要判断ViewState是否为null or "";
get{ return ViewState["_myValue"].ToString(); }
set{ ViewState["_myValue"] = value; }
}
private string _myValue;
public string MyValue
{
get{ return _myValue; }
set{ _myValue = value; }
}
在default.aspx直接 Title1.MyValue = "初始值";
看你这里没有post操作,所有这样就可以了,反之MyDiv里面的属性需要ViewState保存值了。
-->postback值肯定没有了,所有得用viewstate保存了。
public string MyValue
{
//get里面还可以自己处理,因为你那里好像加载控件就必须赋值,所有下面的这些就可以了,要不需要判断ViewState是否为null or "";
get{ return ViewState["_myValue"].ToString(); }
set{ ViewState["_myValue"] = value; }
}
展开全部
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();
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();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询