ASP.net 中怎么给嵌套的DataList赋值

我是在DataList中的项模板中再嵌套了一个DataList.现在就是不知道怎么给他里面的那个DataList赋值了.谢谢朋友帮我搞定一下哈!... 我是在DataList中的项模板中再嵌套了一个DataList.现在就是不知道怎么给他里面的那个DataList赋值了.谢谢朋友帮我搞定一下哈! 展开
 我来答
epldlnwynn
2009-03-17 · TA获得超过149个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:154万
展开全部
先在你的DataList上绑定DataMember的数据,也就是你要查询的字段。如下:
<asp:DataList ID="DataList1" runat="server" DataMember="ID"></<asp:DataList>
然后在添加一个事件:OnItemCreated在这个事件里添加你的代码。代码如下:
<asp:DataList ID="DataList1" runat="server" DataMember="ID" OnItemCreated="DataList1_ItemCreated"></<asp:DataList>

protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
{
int ID = ((MtNets.ItsWebsite.Model.Category)e.Item.DataItem).ID;
IList list = MtNets.ItsWebsite.BLL.ItsWebInfo.GetByID(ID);
DataList dl = ((Repeater)e.Item.FindControl("DataList2"));
dl.DataSource = list;
dl.DataBind();
}
鑫兴鸿装饰帮助
2009-03-17 · 超过16用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:0
展开全部
明白了,是手写的那种吧。

如果是直接使用datalist的数据绑定(不手写),就很简单,和外部的一样绑定就可以了

如果是手写,我也没有接触过,不过为什么要嵌套呢,直接写个 inner join 搜索两个表出来,就可以了噻
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fb0ede766
2009-03-17 · 超过11用户采纳过TA的回答
知道答主
回答量:195
采纳率:0%
帮助的人:0
展开全部
这个问题还没有碰到过,你可以在后台定义几个编量,直接在前台绑定就行了,里面可以不用datalist
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
招迎夏侯07b
2009-03-17
知道答主
回答量:56
采纳率:0%
帮助的人:19.8万
展开全部
这是Repeater控件的嵌套方法,datalist依次类推
前台页面部分:

<asp:Repeater id="rptCategories" runat="server">
<HeaderTemplate>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
</HeaderTemplate>
<ItemTemplate>
<!--分类名称-->
<tr><th><%# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr>
<!--分类下的产品-->
<asp:Repeater id="rptProduct" runat="server">
<ItemTemplate>
<tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

后台代码部分(部分代码):

//在绑定分类品名时,绑定分类下的产品
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
BLL.Products products =new BLL.Products();
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct");
//找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
int CategorieId = Convert.ToInt32(rowv["ID"]);
//根据分类ID查询该分类下的产品,并绑定产品Repeater
rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);
rptProduct.DataBind();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuheidanhi
2009-03-17 · 超过18用户采纳过TA的回答
知道答主
回答量:150
采纳率:0%
帮助的人:79.1万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邢暖九翠梅
2020-01-29 · TA获得超过3771个赞
知道大有可为答主
回答量:3132
采纳率:32%
帮助的人:210万
展开全部
先在你的DataList上绑定DataMember的数据,也就是你要查询的字段。如下:
<asp:DataList
ID="DataList1"
runat="server"
DataMember="ID"></<asp:DataList>
然后在添加一个事件:OnItemCreated在这个事件里添加你的代码。代码如下:
<asp:DataList
ID="DataList1"
runat="server"
DataMember="ID"
OnItemCreated="DataList1_ItemCreated"></<asp:DataList>
protected
void
DataList1_ItemCreated(object
sender,
DataListItemEventArgs
e)
{
int
ID
=
((MtNets.ItsWebsite.Model.Category)e.Item.DataItem).ID;
IList
list
=
MtNets.ItsWebsite.BLL.ItsWebInfo.GetByID(ID);
DataList
dl
=
((Repeater)e.Item.FindControl("DataList2"));
dl.DataSource
=
list;
dl.DataBind();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式