我的网页中做了一个用户控件用以显示注册者的信息info.ascx
其中添加了一个属性Infoid
然后再在我的网页userdetails.aspx
中加入一个DataGrid控件DG1
把DG1加入一列并绑定自定义列为ID 也就是表Users中的ID字段
把DG1设为分页
再把这一列转换为模版 并在Item项加入用户控件info.ascx控件名为info1
再从设计输入HTML格式添加info的Infoid添定ID项这是HTML绑定的写法
<ItemTemplate>
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'></asp:Label>
<uc1:Info id="Info1" runat="server" Infoid='<%# DataBinder.Eval(Container, "DataItem.ID") %>'>
</uc1:Info>
</ItemTemplate>这是代码
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
DataBindDG();
}}private void DataBindDG()
{
OleDbConnection con=DB.createcon();
OleDbDataAdapter odp=new OleDbDataAdapter();
odp.SelectCommand =new OleDbCommand ("Select id from Users order by id desc",con);
DataSet ds=new DataSet ();
odp.Fill (ds,"user");
this.DataGrid1.DataSource =ds.Tables["user"];
this.DataGrid1.DataBind ();
}private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex =e.NewPageIndex ;
this.DataBindDG();
}info.ascx里面写的就是对传进来的infoid的值然读取表中的信息显示出来当程序远行的时候一切显示正带.用户自定义的控件也显示正常
可点击下一页的时候Label1显示的就正常
但是用户自定义控件却不显示相应的数据
调试的时候发现传进来的Infoid的值为空而不是相应绑定的值问题?为什么同样是绑定而单击下一页后Label1显示却是正常的
而用户控件所绑定的值却为null
要如何实现对用户自定义控件的绑定分页
谢谢大家
其中添加了一个属性Infoid
然后再在我的网页userdetails.aspx
中加入一个DataGrid控件DG1
把DG1加入一列并绑定自定义列为ID 也就是表Users中的ID字段
把DG1设为分页
再把这一列转换为模版 并在Item项加入用户控件info.ascx控件名为info1
再从设计输入HTML格式添加info的Infoid添定ID项这是HTML绑定的写法
<ItemTemplate>
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'></asp:Label>
<uc1:Info id="Info1" runat="server" Infoid='<%# DataBinder.Eval(Container, "DataItem.ID") %>'>
</uc1:Info>
</ItemTemplate>这是代码
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
DataBindDG();
}}private void DataBindDG()
{
OleDbConnection con=DB.createcon();
OleDbDataAdapter odp=new OleDbDataAdapter();
odp.SelectCommand =new OleDbCommand ("Select id from Users order by id desc",con);
DataSet ds=new DataSet ();
odp.Fill (ds,"user");
this.DataGrid1.DataSource =ds.Tables["user"];
this.DataGrid1.DataBind ();
}private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex =e.NewPageIndex ;
this.DataBindDG();
}info.ascx里面写的就是对传进来的infoid的值然读取表中的信息显示出来当程序远行的时候一切显示正带.用户自定义的控件也显示正常
可点击下一页的时候Label1显示的就正常
但是用户自定义控件却不显示相应的数据
调试的时候发现传进来的Infoid的值为空而不是相应绑定的值问题?为什么同样是绑定而单击下一页后Label1显示却是正常的
而用户控件所绑定的值却为null
要如何实现对用户自定义控件的绑定分页
谢谢大家
可以参考如下做法:
public string Infoid
{
get
{
return this.Label1.Text;//把Label换成你需要赋值的控件
}
set
{
this.Label1.Text=value;
}
}
public string Infoid
{
set
{
this.infoid =value.ToString();
}
}
private void Page_Load(object sender, System.EventArgs e)
{
this.Label1.Text=this.infoid;
}
这是我的用户自定义控件的一部分
我再说明一次
在页面显示的时候用户自定义控件是显示正常的
但在单击下一页的时候
绑定的数据传到用户自定义控件的时候Infoid就等于null
也就是没有值传入
谢谢
http://singlepine.cnblogs.com/articles/281425.html
但用自定义控件的时候第一次显示正常但单击下一页就不行了
传给自定义控件的值就为null
在 Page_Load和set中设两个断点就知道了,单击下一页的时候,先执行的是Page_Load,这时infoid为null,然后才是属性的赋值
好像是这样哦
那要怎么办呢