我在datalist中绑定了一个自定义控件,让它动态的添加,第一次加载页面都正常,但分页时没有数据加载
我在datalist中绑定了一个自定义控件,让它动态的添加,第一次加载页面都正常,但分页时没有数据加载,分页肯定没有错,因为如果把自定义控件换成其他自带控件都很正常。这是...
我在datalist中绑定了一个自定义控件,让它动态的添加,第一次加载页面都正常,但分页时没有数据加载,分页肯定没有错,因为如果把自定义控件换成其他自带控件都很正常。
这是我自定义控件的有关代码:
public partial class versionControl : System.Web.UI.UserControl
{
private string newVersionID;
public string versionID
{
set {
newVersionID = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
this.Panel1.Visible = false;
this.Panel2.Visible = false;
getVersionData();
}
父界面有关代码:
public partial class version : System.Web.UI.Page
{
int limit = 0;
int flag = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (Convert.ToInt32(this.Label12.Text) == 1)
{
this.btnPageUp.Enabled = false;
}
string keyword = "";
if (!IsPostBack)
{
databingToDatalist(keyword);
}
}
public void databingToDatalist(string keyword)
{
limit = (Convert.ToInt32(this.Label12.Text) - 1) * 20;
DataSet ds = DBlocal.getSomeVersionData(keyword, limit);
DataList1.DataKeyField = "row_id";
DataList1.DataSource = ds;
DataList1.DataBind();
}
代码绑定: protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
versionControl vc = (versionControl)e.Item.FindControl("versionControl1");
vc.versionID = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
}
或者在设计界面直接绑定:
<uc1:versionControl runat="server" ID="versionControl1" versionID=<%#DataBinder.Eval(Container.DataItem,"row_id") %> />
都是一样的效果,就是第一次绑定都正常,只要我做下一页,就显示不出数据,更奇怪的是再点回前一页同样还是绑定不到数据。
希望各位大虾指点指点,不甚感激,不甚感激
datalist数据是正常的
if(!page.ispostback)
{ this.Panel1.Visible = false;
this.Panel2.Visible = false;
getVersionData();
} 一样不行,感觉是当第二次加载页面的时候根本不能传值给自定义控件,我有调试过,当下一页的时候传递的属性值是null
非常感谢ThinkIBM,不过我设置了断点,或者直接
string vcc = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
Response.Write(vcc);
把它输出来,可以输出,而且我点下一页,再点回前一页,发现又无法赋值给自定义控件的属性了,又无法显示数据 展开
这是我自定义控件的有关代码:
public partial class versionControl : System.Web.UI.UserControl
{
private string newVersionID;
public string versionID
{
set {
newVersionID = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
this.Panel1.Visible = false;
this.Panel2.Visible = false;
getVersionData();
}
父界面有关代码:
public partial class version : System.Web.UI.Page
{
int limit = 0;
int flag = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (Convert.ToInt32(this.Label12.Text) == 1)
{
this.btnPageUp.Enabled = false;
}
string keyword = "";
if (!IsPostBack)
{
databingToDatalist(keyword);
}
}
public void databingToDatalist(string keyword)
{
limit = (Convert.ToInt32(this.Label12.Text) - 1) * 20;
DataSet ds = DBlocal.getSomeVersionData(keyword, limit);
DataList1.DataKeyField = "row_id";
DataList1.DataSource = ds;
DataList1.DataBind();
}
代码绑定: protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
versionControl vc = (versionControl)e.Item.FindControl("versionControl1");
vc.versionID = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
}
或者在设计界面直接绑定:
<uc1:versionControl runat="server" ID="versionControl1" versionID=<%#DataBinder.Eval(Container.DataItem,"row_id") %> />
都是一样的效果,就是第一次绑定都正常,只要我做下一页,就显示不出数据,更奇怪的是再点回前一页同样还是绑定不到数据。
希望各位大虾指点指点,不甚感激,不甚感激
datalist数据是正常的
if(!page.ispostback)
{ this.Panel1.Visible = false;
this.Panel2.Visible = false;
getVersionData();
} 一样不行,感觉是当第二次加载页面的时候根本不能传值给自定义控件,我有调试过,当下一页的时候传递的属性值是null
非常感谢ThinkIBM,不过我设置了断点,或者直接
string vcc = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
Response.Write(vcc);
把它输出来,可以输出,而且我点下一页,再点回前一页,发现又无法赋值给自定义控件的属性了,又无法显示数据 展开
3个回答
展开全部
因为DataList用的很少,所以没太多经验,建议你把
this.DataList1.DataKeys[e.Item.ItemIndex]
修改成:
((DataSet)this.DataList1.DataSource).Tables[0].Rows[e.Item.ItemIndex][主键列名]
你加个断点试试吧
看看this.DataList1.DataKeys[e.Item.ItemIndex]
每次取出的值都是多少
你的DataList的数据显示正常吗?
this.DataList1.DataKeys[e.Item.ItemIndex]
修改成:
((DataSet)this.DataList1.DataSource).Tables[0].Rows[e.Item.ItemIndex][主键列名]
你加个断点试试吧
看看this.DataList1.DataKeys[e.Item.ItemIndex]
每次取出的值都是多少
你的DataList的数据显示正常吗?
展开全部
protected void Page_Load(object sender, EventArgs e)
{
if(!page.ispostback)
{ this.Panel1.Visible = false;
this.Panel2.Visible = false;
getVersionData();
}
}
{
if(!page.ispostback)
{ this.Panel1.Visible = false;
this.Panel2.Visible = false;
getVersionData();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询