我有一个按钮的列表视图(我想实际上有超链接但不知道如何在没有onclick事件的情况下执行)我可以点击并在另一个列表视图中显示主类别的子类别产品(已经与产品捆绑在一起)主类别表)。这是我下面的代码,显然它没有按预期工作,并抛出以下错误:
“DataSource和DataSourceID都在'ListView_Products'上定义。删除一个定义。”
有人可以建议如何处理这个问题吗?感谢。
这是我想要做的“图片”:
**ListView 1(Sub Category)** **ListView 2(Master Category)**
Cotton "ALL THE DRESSES"
Silk
因此,当我在ListView1中点击棉花时,只有棉花制成的衣服会显示在ListView2上。
<asp:ListView ID="ListView_ProductsMenu" runat="server"
DataKeyNames="CategoryID" DataSourceID="EDS_Category_Menu" >
<EmptyDataTemplate>No Menu Items.</EmptyDataTemplate>
<ItemSeparatorTemplate></ItemSeparatorTemplate>
<ItemTemplate>
<li style="color: #B6B6B6; text-align: left; font-family: candara; font-size: small;" class="SideMenu">
<asp:Button ID="Button1" runat="server" Text='<%# Eval("Category_Sub_Name")%>' OnClick='<%# FormattedCategory((int)Eval("CategoryID"),(int)Eval("Category_Sub_ID")) %>' />
</li>
</ItemTemplate>
<LayoutTemplate>
<ul ID="itemPlaceholderContainer" runat="server" style="font-family: Verdana, Arial, Helvetica, sans-serif;">
<li runat="server" id="itemPlaceholder" />
</ul>
<div style="text-align: left;background-color: #FFCC66;font-family: Verdana, Arial, Helvetica, sans-serif;color: #333333;"></div>
</LayoutTemplate>
</asp:ListView>
代码背后:
protected string FormattedCategory(int cID, int subCatID)
{
using (CommerceEntities db = new CommerceEntities())
{
ListView_Products.DataSource = null;
ListView_Products.DataSource = (from c in db.Categories_Sub
where c.CategoryID == cID
& c.Category_Sub_ID == subCatID
select c);
ListView_Products.DataBind();
//foreach (var item in subCat)
//{
// ListView_ProductsMenu.DataBind();
// }
}
return null;
}
答案 0 :(得分:1)
尝试从<asp:ListView ...
DataSourceID="EDS_Category_Menu"
答案 1 :(得分:0)
没关系,它是ListView_Products.DataSourceID = null;其实。感谢。