datalist中嵌套datalist该怎样做?

loveflydhl 2009-01-05 10:53:11
根据我的情况请认真回答谢谢:

我的一个datalist1里面放了个表格 根据我的绑定循环出了 四个表格这是对的。。表格里面放了个datalist2用于显示其他信息。。。也就是说datalist2是放到datalist1里面的。。。

问题:

datalist1在数据绑定下循环的四个表格其他的数据是正常的。。我要的是datalist2应该也会随四个表格的产生出四个不同的内容。。
可是datalist2在datalist1的事件itemdatabound 绑定中出现的是 四个表格中的datalist2数据都是一样的。。。。


我要出现四个表格中的datalist2的数据都不一样该怎么做????


以下代码:

private void Qery_host_top4()//datalist1绑定
{
string title = string.Empty;
....sql语句....
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
int id = Convert.ToInt32(ds.Tables[0].Rows[i]["HostelId"].ToString());
Qery_not_top2(id);//获取ID查询的数据将给datalist2
}
ddlist_hot_top4.DataSource = ds;
ddlist_hot_top4.DataBind();
}
private void Qery_not_top2(int id)
{
string title = string.Empty;
....sql语句....
SqlDataAdapter sda = new SqlDataAdapter(cmd);
ds1 = new DataSet(); //静态ds1
sda.Fill(ds1);
}
//绑定datalist2
protected void ddlist_hot_top4_ItemDataBound(object sender, DataListItemEventArgs e)
{
DataList dl = (DataList)e.Item.FindControl("datalist2");
dl.DataSource = ds1;
dl.DataBind();
}
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaicm 2009-01-05
  • 打赏
  • 举报
回复
private void Qery_not_top2(int id)
{
string title = string.Empty;
....sql语句....
SqlDataAdapter sda = new SqlDataAdapter(cmd);
ds1 = new DataSet(); //静态ds1
sda.Fill(ds1);
}
改成


private void Qery_not_top2(int id)
{
string title = string.Empty;
....sql语句....
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable ();
dt.tableName = id.ToString();
sda.Fill(ds1);
ds1.Merge(dt);
}


调用


protected void ddlist_hot_top4_ItemDataBound(object sender, DataListItemEventArgs e)
{
DataList dl = (DataList)e.Item.FindControl("datalist2");
dl.DataSource = ds1.Tables[这里是ID值,没环境,具体是e.Item的哪个属性不记得了];
dl.DataBind();
}
wangping_li 2009-01-05
  • 打赏
  • 举报
回复
int id = Convert.ToInt32(ds.Tables[0].Rows[i]["HostelId"].ToString());

你跟踪一下看看这个ID取得对吗?
然后就是:

string title = string.Empty;
....sql语句....
SqlDataAdapter sda = new SqlDataAdapter(cmd);
ds1 = new DataSet(); //静态ds1
sda.Fill(ds1);

你这里面的ds1数据是不是你想要的?估计是你这里的数据源出了问题

loveflydhl 2009-01-05
  • 打赏
  • 举报
回复
希望楼下能理解我的意思。。。

绑我解决哈。。。等着用
loveflydhl 2009-01-05
  • 打赏
  • 举报
回复
解决了。。
private void Qery_host_top4()//datalist1绑定
{
string title = string.Empty;
....sql语句....
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
ddlist_hot_top4.DataSource = ds;
ddlist_hot_top4.DataBind();
}
private DataSet Qery_not_top2(int id)
{
string title = string.Empty;
....sql语句....
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
//绑定datalist2
protected void ddlist_hot_top4_ItemDataBound(object sender, DataListItemEventArgs e)
{
DataList dl = (DataList)e.Item.FindControl("datalist2");
int id = convert.toint32(ddlist_hot_top4.datakeys[e.item.itemindex].tostring());
DataSet ds = Qery_not_top2(id);
dl.DataSource = ds;
dl.DataBind();
}
loveflydhl 2009-01-05
  • 打赏
  • 举报
回复
能知道的多给我点方法吧。。谢谢了
zhuanshen712 2009-01-05
  • 打赏
  • 举报
回复
绑定DataList2的代码写在DataList1的ItemDataBound事件中。
John_Yang 2009-01-05
  • 打赏
  • 举报
回复
可以在datalist1的行绑定事件中手动为当前行的datalist2指定数据源

哦。汗,楼上正解。

110,533

社区成员

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

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

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