双列表视图绑定帮助

时间:2011-07-19 14:05:58

标签: c# asp.net

我有一个按钮的列表视图(我想实际上有超链接但不知道如何在没有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;
    }

2 个答案:

答案 0 :(得分:1)

尝试从<asp:ListView ... DataSourceID="EDS_Category_Menu"

中删除该属性

答案 1 :(得分:0)

没关系,它是ListView_Products.DataSourceID = null;其实。感谢。