ورود

View Full Version : سوال: دسته بندی محصولات



gama_slv
جمعه 09 بهمن 1394, 11:18 صبح
برای گروه محصولات
public class GroupProduct {
public int GroupProductId { get; set; }
public int? ParentGroupId { get; set; }
public virtual GroupProduct Parent { get; set; }
public string GroupProductName { get; set; }


public virtual ICollection<GroupProduct> Children { get; set; }

public virtual ICollection<Product> Products { get; set; }

}
استفاده کردم
کسی آموزشی برای گروه بندی بصورت تو در تو داره؟

oracle_dba
جمعه 09 بهمن 1394, 17:48 عصر
سلام
بهترین روش در نظر گرفتن فیلی دیگر به نام Parent Id است . شما هر محصول رو تعیین می کنی جزو کدوم گروه است یعنی کد گروهی که می خواهی محصول زیر مجموعش باشه رو توی این فیلد Parent id درج می کنی .
زمان بازیابی هم میگی همه اونایی که Parent id اونها برابر با id گروهی که دارای انتخاب می کنی باشه

salar IT man
جمعه 09 بهمن 1394, 18:17 عصر
برای گروه محصولات
public class GroupProduct {
public int GroupProductId { get; set; }
public int? ParentGroupId { get; set; }
public virtual GroupProduct Parent { get; set; }
public string GroupProductName { get; set; }


public virtual ICollection<GroupProduct> Children { get; set; }

public virtual ICollection<Product> Products { get; set; }

}
استفاده کردم
کسی آموزشی برای گروه بندی بصورت تو در تو داره؟

چندین روش را در اینجا (http://www.dotnettips.info/projectissue/details/22/355#comment-618) بررسی کردیم.

gama_slv
شنبه 10 بهمن 1394, 00:37 صبح
من منو چند سطحی (http://www.dotnettips.info/post/1524/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D9%86%D9%88%D9%87%D8%A7%DB%8C-%DA%86%D9%86%D8%AF-%D8%B3%D8%B7%D8%AD%DB%8C-%D8%AF%D8%B1-asp-net-mvc) ررو خوندم ولی آموزش برای ساخت منو بود.من باید در یک tree view نمایش بدم.
مدلم رو تغییر دادم

public class GroupProduct {

public int GroupProductId { get; set; }
public string GroupProductName { get; set; }
public virtual int? ParentId { get; set; }
public virtual GroupProduct Parent { get; set; }
public virtual ICollection<GroupProduct> Children { get; set; }
public virtual ICollection<Product> Products { get; set; }
}

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
// Self Referencing Entity
modelBuilder.Entity<GroupProduct>()
.HasOptional(x => x.Parent)
.WithMany(x => x.Children)
.HasForeignKey(x => x.ParentId)
.WillCascadeOnDelete(false);


base.OnModelCreating(modelBuilder);
}

138734

و از هلپر tree view استفاده کردم
کد ویو

@using Foolad.Helpers@model IEnumerable<Foolad.Models.GroupProduct>


@(Html.TreeView(Model)
.EmptyContent("No locations have been defined yet!")
.Children(m => m.Children)
.HtmlAttributes(new { id = "tree" })
.ChildrenHtmlAttributes(new { @class = "subItem" })
.ItemText(m => m.GroupProductName)
.ItemTemplate(
@<text>
<a href="#@item.GroupProductId">@item.GroupProductName</a>
</text>)
)

ولی نمی دونم چرا درست کار نمیکنه :گریه::عصبانی++:

138735