آموزش ایجاد TreeView در صفحات Asp.Net MVC
0 0

آموزش ایجاد TreeView در صفحات Asp.Net MVC


آموزش ایجاد TreeView در صفحات Asp.Net MVC

در این پست میخواهیم چگونه نمایش اطلاعات را به صورت TreeView در Asp.Net MVC را آموزش بدهیم.

قبلا چگونه نمایش TreeView را در زبان Asp.Net را آموزش دادیم و امروز در MVC چگونگی نمایش TreeView را خواهیم اموخت.

ابتدا یک پروژه با نام TreeView_Iranganj ز نوع mvc انتخاب میکنیم.

آموزش ایجاد TreeView در صفحات Asp.Net MVC

آموزش ایجاد TreeView در صفحات Asp.Net MVC

سپس در پوشه Modal نیاز به دو کلاس داریم که در اصل همان دو ریشه و زیر مجموعه های ریشه هستند .میخواهیم مثال را روی نویسنده و آثارش پیاده کنیم پس ابتدا یک کلاس با نام AuthorViewModel  برای نویسنده در نظر میگیریم و یک کلاس با نام BookViewModel هم برای کتاب های آن نویسنده. به صورت زیر این دو کلاس را کدنویسی میکنیم.

 

public class BookViewModel
    {
        public long Id
        {
            get;
            set;
        }
        public string Title
        {
            get;
            set;
        }
        public bool IsWritten
        {
            get;
            set;
        }   

و نویسنده که کلاس کتاب باید در کلاس نویسنده هم به صورت لیست جای بگیرد.

public AuthorViewModel()
        {
            BookViewModel = new List<BookViewModel>();
        }
        public int Id
        {
            get;
            set;
        }
        public string Name
        {
            get;
            set;
        }
        public bool IsAuthor
        {
            get;
            set;
        }
        public IList<BookViewModel> BookViewModel
        {
            get;
            set;
        }   

در ادامه برای کنترلر روی این دو کلاس یک کنترلر با نام HomeController ایجاد و نحوه ایجاد ریشه و زیرمجموعه های آن را تعریف میکنیم.

آموزش ایجاد TreeView در صفحات Asp.Net MVC

ابتدا فضای نام لازم را اضافه میکنیم.

using TreeView_Iranganj.Models;

و سپس کدهای زیر را می نویسیم.

public class HomeController : Controller
    {
        [HttpGet]

        public ActionResult Index()
        {
            List<AuthorViewModel> model = new List<AuthorViewModel>();

            AuthorViewModel firstAuthor = new AuthorViewModel
            {
                Id = 1,
                Name = "علی شریعتی",
                BookViewModel = new List<BookViewModel>{  
                    new BookViewModel{  
                        Id=1,  
                        Title = " فاطمه فاطمه است",  
                        IsWritten = false  
                    }, new BookViewModel{  
                        Id=1,  
                        Title = "انسان بی خود",  
                        IsWritten = false  
                    }  
                }
            };


            AuthorViewModel secondAuthor = new AuthorViewModel
            {
                Id = 2,
                Name = "احمد شاملو",
                BookViewModel = new List<BookViewModel>{  
                    new BookViewModel{  
                        Id=3,  
                        Title = "مرثیه‌های خاک",  
                        IsWritten = false  
                    }, new BookViewModel{  
                        Id=4,  
                        Title = "حدیث بی‌ قراری ماهان",  
                        IsWritten = false  
                    }  
                }
            };
            model.Add(firstAuthor);
            model.Add(secondAuthor);
            return View("Index", model);
        }

        [HttpPost]
        public ActionResult Index(List<AuthorViewModel> model)
        {
            List<AuthorViewModel> selectedAuthors = model.Where(a => a.IsAuthor).ToList();
            List<BookViewModel> selectedBooks = model.Where(a => a.IsAuthor)
            .SelectMany(a => a.BookViewModel.Where(b => b.IsWritten)).ToList();

            return View();
        }   
    }

سپس داخل پوشه Views وارد پوشه Home شده و یک صفحه با نام Index ایجاد میکنیم. کد نویسی این بخش هم به صورت زیر خواهد بود.

@model List<TreeView_Iranganj.Models.AuthorViewModel>


 
@{
    ViewBag.Title="ایران گنج";
}

<div class="panel panel-primary">
    <div class="panel-heading panel-head">از سایت ایران گنج MVC در TreeView ایجاد</div>
    <div id="frm-author" class="panel-body">
        @using (Html.BeginForm())
        {

            <div class="tree">
                @for (int i = 0; i < Model.Count(); i++)
                {

                    <ul>
                        <li>
                            <a href="#">
                                @Html.CheckBoxFor(model => model[i].IsAuthor, new { @class = "tree-checkbox parent", @id = @Model[i].Id })

                                <label for=@i>
                                    <strong>نویسنده:</strong>
                                    @Html.DisplayFor(model => model[i].Name)

                                </label>
                            </a>
                            <ul>
                                @for (int j = 0; j < Model[i].BookViewModel.Count(); j++)
                                {
                                    int k = 1 + j;
                                    @Html.HiddenFor(model => model[i].BookViewModel[j].Id)

                                    <li>
                                        <a href="#">
                                            @Html.CheckBoxFor(model => model[i].BookViewModel[j].IsWritten, new { @class = "tree-checkbox node-item", @iid = i + "" + j })

                                            <label for=@i@j>
                                                <strong>کتاب @(k):</strong> @Html.DisplayFor(model => model[i].BookViewModel[j].Title)
                                            </label>
                                        </a>
                                    </li>

                                }

                            </ul>
                        </li>
                    </ul>
                }

            </div>
         
        }

    </div>
</div>
 

پس از اجرای صفحه حاصل کار به صورت زیر خواهد بود :

آموزش ایجاد TreeView در صفحات Asp.Net MVC

دانلود

نویسنده علی بهارلویی
گروه مطلب MVC
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۲۷ شهریور ۱۳۹۴
منبع ایران گنج
تعداد نظرات ۲
قیمت کاربران عضو سایت
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha
نظرات کاربران

  • مهرداد

    لطفا مطالب مربوط به MVC رو بیشتر تو سایتتون به اشتراک بزارین.با تشکر

    پاسخ
    • علی بهارلویی

      درود

      انشاالله سعی میکنیم مطالب مرتبط با mvc بیشتر ارائه بشه.

       

      پاسخ