PDA

View Full Version : kendo ui Treeview



soroush.elec
جمعه 30 فروردین 1392, 23:09 عصر
سلام می خواستم بدونم چجوری می تونم دیتا سورس را برای هلپرهای کندو ست کنم که به model بایند شود ؟ مثلا فکر کنید هلپر treeview را درون یک partialview گذاشته ام . و به این partialview از طرف اکشن یک لیست از اسامی فرستاده شده.

Saeed_m_Farid
یک شنبه 01 اردیبهشت 1392, 17:01 عصر
خیلی ساده:


@model IEnumerable<xxxxxxxxx>

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

<div class="k-rtl">
@(Html.Kendo().TreeView()
.Name("persons")
.Items(treeview =>
{
if (Model != null)
foreach (var item in Model)
treeview.Add().Text(Html.Encode(item.Name));
})
)
</div>


اگه فرض کنیم مدل پاس داده شده از اکشن شما درختی باشه (چون اصولاً TreeView واسه همین منظور درست شده) و شما بخواین Grouping داشته باشین مبشه به این صورت :

@model IEnumerable<MyProject.ViewModels.ProductsViewModel>

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

<div class="k-rtl">
@(Html.Kendo().TreeView()
.Name("products")
.Items(treeview =>
{
if (Model != null)
{
foreach (var group in Model.GroupBy(item => item.CategoryId))
{
treeview.Add().Text(Html.Encode(group.Key))
.Expanded(true)
.Items(root =>
{
foreach (var item in group)
root.Add().Text(Html.Encode(item.Name))
});
}
}
})
)
</div>

با این فرض: Category->Product

soroush.elec
یک شنبه 01 اردیبهشت 1392, 21:47 عصر
سلام ممنون از پاسخ جامع شما. ولی فکر کنم این راه حل شما فقط تا یک مرتبه زیر گروه ها را نشان می دهد. اما من می خواهم تا n مرتبه زیر گروه ها را داشته باشم. مثلاً مدل من یک table است که فیلد های جدول خودشان با هم رابطه دارند.

Saeed_m_Farid
دوشنبه 02 اردیبهشت 1392, 12:19 عصر
این شد یه سوال جدید و باید مدل خودتون رو بذارید تا راهکاری برای پیدا کنیم؛ متوجه نشدم "فیلد های جدول خودشان با هم رابطه دارند." یعنی چی؟ مثلاً parent_id داید تو مدل خودتون که id یه رکورد رو map میکنید بهش؟