我在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);
把它输出来,可以输出,而且我点下一页,再点回前一页,发现又无法赋值给自定义控件的属性了,又无法显示数据
展开
 我来答
ThinkIBM
2010-12-08 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5480万
展开全部
因为DataList用的很少,所以没太多经验,建议你把
this.DataList1.DataKeys[e.Item.ItemIndex]
修改成:
((DataSet)this.DataList1.DataSource).Tables[0].Rows[e.Item.ItemIndex][主键列名]

你加个断点试试吧
看看this.DataList1.DataKeys[e.Item.ItemIndex]
每次取出的值都是多少

你的DataList的数据显示正常吗?
leishenql
2010-12-08 · TA获得超过453个赞
知道小有建树答主
回答量:869
采纳率:0%
帮助的人:602万
展开全部
protected void Page_Load(object sender, EventArgs e)
{
if(!page.ispostback)
{ this.Panel1.Visible = false;
this.Panel2.Visible = false;
getVersionData();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wqu1205
2010-12-08
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
ispostback
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式