ASP.net 中怎么给嵌套的DataList赋值
我是在DataList中的项模板中再嵌套了一个DataList.现在就是不知道怎么给他里面的那个DataList赋值了.谢谢朋友帮我搞定一下哈!...
我是在DataList中的项模板中再嵌套了一个DataList.现在就是不知道怎么给他里面的那个DataList赋值了.谢谢朋友帮我搞定一下哈!
展开
展开全部
先在你的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();
}
<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();
}
展开全部
明白了,是手写的那种吧。
如果是直接使用datalist的数据绑定(不手写),就很简单,和外部的一样绑定就可以了
如果是手写,我也没有接触过,不过为什么要嵌套呢,直接写个 inner join 搜索两个表出来,就可以了噻
如果是直接使用datalist的数据绑定(不手写),就很简单,和外部的一样绑定就可以了
如果是手写,我也没有接触过,不过为什么要嵌套呢,直接写个 inner join 搜索两个表出来,就可以了噻
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题还没有碰到过,你可以在后台定义几个编量,直接在前台绑定就行了,里面可以不用datalist
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是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();
}
}
前台页面部分:
<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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先在你的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();
}
<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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询