با سلام
ممنون میشم از اساتید راهنماییم کنن
میخوام یه ساب منو ایجاد کنم با استفاده از روش link اما هر کاری میکنم ساب منو هام برای همه منو ها تکرار میشه در صورتی که نباید اینجوری باشه ممنون میشم راهنمایی کنید
اینم کدهایی که استفاده کردم + اسکرین شات
e.Result = (from mov in con.menu select new { mov.urlmenu, mov.namemenu, mov.idmenu, }).ToList(); e.Result = (from u in con.submenu where u.idmenu == u.menu.idmenu select u).ToList();
بخش .aspx : <ul class="nav"> <asp:LinqDataSource ID="dsProductGroup" runat="server" OnSelecting="dsProductGroup_OnSelecting"></asp:LinqDataSource> <asp:Repeater ID="rptProductGroup" runat="server" DataSourceID="dsProductGroup"> <ItemTemplate> <li> <a href='<%# string.Format("/ProductGroup{0}/{1}.html",Eval("ProductGroupID"),Eval("ProductGroupTitle")) %>' > <%# string.Format("{0}",Eval("ProductGroupTitle")) %> </a> <ul> <asp:Repeater ID="rptProductGroup" runat="server" DataSource='<%#Eval("dsProductGroupSub") %>'> <ItemTemplate> <li> <a href='<%# string.Format("/ProductSubGroup{0}/{1}-{2}.html",Eval("ProductGroupSubID"),Eval("ProductGroupTitle"),Eval("ProductGroupSubTitle")) %>' ><%# string.Format("{0}",Eval("ProductGroupSubTitle")) %></a> </li> </ItemTemplate> </asp:Repeater> </ul> </li> </ItemTemplate> </asp:Repeater> </ul>
قسمت کد :
protected void dsProductGroup_OnSelecting(object sender, LinqDataSourceSelectEventArgs e) { e.Result = (from pg in db.ProductGroups where pg.ProductGroupSubs.Count != 0 orderby pg.ProductGroupTitle select new { pg.ProductGroupID, pg.ProductGroupTitle, ProductCount = db.Products.Count(c => c.ProductGroupSubs.ProductGroupID == pg.ProductGroupID), dsProductGroupSub = db.ProductGroupSubs.Where(c => c.ProductGroupID == pg.ProductGroupID) .Select(c => new { c.ProductGroupSubID, c.ProductGroupSubTitle, c.ProductGroups.ProductGroupTitle, Count = db.Products.Count(d => d.ProductGroupSubID == c.ProductGroupSubID) }) }); }
این روشی است که میتونید برای مثال گروه و زیر گروه هر قسمت را بصورت داینامیک نمایش دهید. توجه داشته باشید که دیتاسورس گروه اصلی از یک LinqDatasource و دیتا سورس Repeater زیر گروه داخل کوئری اصلی و با نام dsProductGroupSub پر می شود.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)