نمایش نتایج 1 تا 17 از 17

نام تاپیک: اررور در استفاده از treehelper

  1. #1

    اررور در استفاده از treehelper

    سلام و عرض ادب.
    بنده با توجه به نیاز به چندین سطح زیر منو، از treehelper استفاده کردم ولی با مشکل زیر روبرو شدم و نمی دونم چطور رفعش کنم؟؟؟؟؟؟

    فرض کنید منو ها به این صورت وارد شده باشند:
    home*
    samples*
    -submenu1

    *aboutus

    وقتیکه زیرمنویی وجود نداشته باشه هیچ مشکلی نیست ولی با وجود زیرمنو ها وقتی submenu1 رو ایجاد میکنه و هلپر رو فراخوانی میکنه اررور زیر رو میده و میگه که item.Childe برابر با null است درصورتیکه نمی تونه null باشه. خواهش می کنم بفرمایید چطور میتونم این اررور رو رفع کنم.

    Capture1.JPG

    لازمه بگم از روشی که در آدرس زیر هست، استفاده کردم:
    http://www.dotnettips.info/post/1524...B1-asp-net-mvc

  2. #2

    نقل قول: اررور در استفاده از treehelper

    داخل تگ ul را به این صورت تغییر بده ببینید درست میشه آیا

    ShowTree(item.childs.orderByDecending(b=>b.id).ToL ist();)

    فکر کنم دستور orderby بعداز ToList بیاد خطا بده

  3. #3

    نقل قول: اررور در استفاده از treehelper

    نقل قول نوشته شده توسط a.golzar66 مشاهده تاپیک
    داخل تگ ul را به این صورت تغییر بده ببینید درست میشه آیا

    ShowTree(item.childs.orderByDecending(b=>b.id).ToL ist();)

    فکر کنم دستور orderby بعداز ToList بیاد خطا بده
    سلام. اینکار رو قبلا امتحان کردم ولی درست نشده!!!!!
    فرمایش شما رو بازم امتحان می کنم ببینم چی میشه....

  4. #4

    نقل قول: اررور در استفاده از treehelper

    اگر مایل بودید کد رو برام بفرستید فکر کنم بتونم درست کنم براتون

  5. #5

    نقل قول: اررور در استفاده از treehelper

    لطفا مدلتون رو اینجا قرار بدین، احتمالا لیست Childs رو توی مدلتون داخل سازنده پیش فرض، new نکردین

  6. #6

    نقل قول: اررور در استفاده از treehelper

    سلام مجدد.

    این مدل مربوطه که البته child از نوع collection بود و من فکر کردم با List شاید فرجی بشه اما نشد!!!!


    public class Menu
    {
    /// <summary>
    /// کد یکتایی
    /// </summary>
    public int Id { get; set; }


    /// <summary>
    /// عنوان
    /// </summary>
    public string Title { get; set; }


    /// <summary>
    /// والد
    /// </summary>
    //[ForeignKey("ParentId")]
    public Menu Parent { get; set; }


    /// <summary>
    /// کد یکتایی والد
    /// </summary>
    public int? ParentId { get; set; }


    /// <summary>
    /// اولویت
    /// </summary>
    public int Periority { get; set; }


    /// <summary>
    /// وضعیت
    /// </summary>
    //public int IsActive { get; set; }




    public List<Menu> Childs { get; set; }




    }




    کدی که در کنترلر مربوطه نوشتم _البته بقیه اکشنهای پیش فرض رو دیگه قرار ندادم:


    private DatabaseContext db = new DatabaseContext();




    [ChildActionOnly]
    public virtual ActionResult UserHorizontalNavBarItems()
    {
    //var model = db.Menu.Where(category => category.ParentId == null).Include(category => category.Childs).ToList();
    var model = db.Menu.Include(x => x.Parent).ToList();
    return PartialView("_HorizontalNavigation", model);
    }


    // GET: Menus
    public ActionResult Index()
    {
    var menu = db.Menu.Include(m => m.Parent);
    return View(menu.ToList());
    }




    و بالاخره اینم از کد هلپر:



    @using DynamicMenu.Models
    @model IEnumerable<Menu>
    <div class="container">
    <nav role="navigation" class="navbar navbar-inverse">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
    <button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
    <span class="sr-only"> Toggle navigation </span>
    <span class="icon-bar"> </span>
    <span class="icon-bar"> </span>
    <span class="icon-bar"> </span>
    </button>
    <a href="#" class="navbar-brand"> Brand </a>
    </div>
    <!-- Collection of nav links and other content for toggling -->
    <div id="navbarCollapse" class="collapse navbar-collapse">
    <ul class="nav navbar-nav">


    @{
    int _counter = 1;
    }


    @ShowTree(Model.OrderByDescending(b => b.Periority).Reverse(), _counter)


    @helper ShowTree(IEnumerable<DynamicMenu.Models.Menu> mnu, int counter)
    {
    <ul class="nav navbar-nav pull-right" style="direction:rtl;">
    @{
    foreach (var item in mnu)
    {
    <li class="@((counter == 1) ? "nav-item active" : "nav-item" )nav-item">
    <a class="nav-link" href="#">@item.Title</a>


    @if (item.Childs.Any())
    {

    <ul class="@((counter == 1) ? "nav-item active" : "nav-item" )nav-item">
    @ShowTree(item.Childs.ToList(), counter)
    </ul>
    }




    </li>
    counter++;
    }//end foreach
    }
    </ul>
    }
    </ul>
    </div>
    </nav>


    </div>


    @*<script>
    $('ul.nav li.dropdown').hover(function () {
    $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
    },
    function () {
    $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
    }
    );


    </script>*@




    <script src="~/Scripts/jquery.min.js"></script>



    خواهش می کنم راهنماییم کنید بدجوری گیر کردم!!!!
    آخرین ویرایش به وسیله raha raad : یک شنبه 22 بهمن 1396 در 07:38 صبح دلیل: اشتباه در بخشی از کد ارسال شده

  7. #7

    نقل قول: اررور در استفاده از treehelper

    نقل قول نوشته شده توسط a.golzar66 مشاهده تاپیک
    اگر مایل بودید کد رو برام بفرستید فکر کنم بتونم درست کنم براتون
    متاسفانه نمی تونم سلوشن پروژه رو بذارم ولی بخش هایی از کد مربوط به این منو رو قرار دادم. امیدوارم با راهنمایی شما و سایر مهندسین بتونم این مشکل رو رفعش کنم.

  8. #8

    نقل قول: اررور در استفاده از treehelper

    سلام
    دوست عزیز در کد مربوط به هلپر این قسمت رو عوض کن ببین درست میشه


    @model IEnumerable<Menu>


    بشه این


    @model List<Menu>

  9. #9

    نقل قول: اررور در استفاده از treehelper

    شما داخل کلاس Menu لیست Childs رو new نکردین، به همین خاطر ارور نال میده بتون، داخل سازنده همین کلاس، لیست رو new کنین ببینین مشکل رفع میشه یا خیر؟
    public Menu()
    {
    Childs = new List<Menu>();
    }


  10. #10

    نقل قول: اررور در استفاده از treehelper

    سلام مجدد.
    من فرمایشات شما رو انجام دادم و حالا زیرمنو نمایش داده میشه اما....در کمال تعجب فقط یه سطح زیر منو نشون میده!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    به تصویر زیر توجه کنید:

    submenu.jpg

    همونطور که از تصویر مشخصه، Sub-Menu1 باید یه زیر منو sub-mnu رو داشته باشه. اما می بینید که نداره!!!!!!!!!

  11. #11

    نقل قول: اررور در استفاده از treehelper

    شما این قسمت از ویو رو دیباگ کنین و ببینین ایتم sub-menu1 لیست childs ش عنصری داره یا خیر؟
    @if (item.Childs.Any())
    {
    <ul class="@((counter == 1) ? "nav-item active" : "nav-item" )nav-item">
    @ShowTree(item.Childs.ToList(), counter)
    </ul>
    }

    اگر عنصری نداشت احتمالا اشکال در مقدار دهی ستون های جدولتون هستش

  12. #12

    نقل قول: اررور در استفاده از treehelper

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    شما این قسمت از ویو رو دیباگ کنین و ببینین ایتم sub-menu1 لیست childs ش عنصری داره یا خیر؟
    سلام مجدد.
    حتما بررسی می کنم.از صبوریتون سپاسگذارم.

  13. #13

    نقل قول: اررور در استفاده از treehelper

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    }[/CSHARP]
    اگر عنصری نداشت احتمالا اشکال در مقدار دهی ستون های جدولتون هستش
    سلام.
    دقیقا همین مشکلی که فرمودید رو داره برای بررسی و رفعش چه کار باید بکنم؟؟؟ من مدل و دیتابیس رو بررسی کردم و به نظر میاد همه چیز درست باشه!!!!!!! نمی فهمم مشکل از کجاس؟؟؟
    میشه بیشتر توضیح بدید که منظور از "اشکال در مقدار دهی ستون های جدول" چیه؟؟؟؟
    همونطور که در تصویر قابل مشاهده هست مقداردهی جدول چیز اشتباهی رو نشون نمیده!!!!

  14. #14

    نقل قول: اررور در استفاده از treehelper

    لطفا اطلاعاتی که توی جدول menu درج کردین رو بذارین

  15. #15

    نقل قول: اررور در استفاده از treehelper

    اینم یک نمونه از ورود اطلاعات در جدول Menu در دیتابیس.

    Capture.JPG

  16. #16

    نقل قول: اررور در استفاده از treehelper

    الان این مقادیر مشکلی ندارن، این مقادیر با عکسی که قبلا گذاشتین یکی نیست، تشخیص یکم سخته که الان کدوم منو زیر منو واسش تولید نمیشه، شما مطمئنین این مقادیر هم دقیقا همون مشکل رو دارن؟
    یا همون مقادیر رو دوباره توی جدول درج کنین و نتیجه رو گزارش بدین یا این مقادیر جدید رو بررسی کنین که زیرمنو ها بدرستی تولید میشن یا خیر

    در ضمن چند نکته رو بگم:
    توی متد ShowTree به تگ li و ul دوتا کلاس یکسان رو اضافه کردین:
    <li class="@((counter == 1) ? "nav-item active" : "nav-item" )nav-item">
    <a class="nav-link" href="#">@item.Title</a>

    @if (item.Childs.Any())
    {
    <ul class="@((counter == 1) ? "nav-item active" : "nav-item" )nav-item">

    اینارو به اینصورت تغییر بدین:
    <li class="@((counter == 1) ? "nav-item active" : "nav-item" )">
    <a class="nav-link" href="#">@item.Title</a>

    @if (item.Childs.Any())
    {
    <ul class="@((counter == 1) ? "nav-item active" : "nav-item" )">
    نکته دوم:
    توی اکشن UserHorizontalNavBarItems موقع واکشی منو ها، برای واکشی فرزندها یا از متد include استفاده کنین، و یا داخل کلاس Menu برای لیست childs بعد از کلمه public از کلمه کلیدی virtual استفاده کنین

    این تغییرات رو انجام بدین و نتیجه رو گزارش بدین
    آخرین ویرایش به وسیله mr.sirwan : جمعه 04 اسفند 1396 در 14:09 عصر

  17. #17

    نقل قول: اررور در استفاده از treehelper

    سلام مجدد.
    در هر دو صورتی که داده وارد کردم فقط یه سطح زیرمنو نشون داده میشه متاسفانه. تغییراتی که فرمودید رو اعمال می کنم و نتیجه رو اطلاع می دم.

    بازهم از صبوریتون کمال تشکر رو دارم.

تاپیک های مشابه

  1. نکات مفید در استفاده از IDE دلفی
    نوشته شده توسط (امید) در بخش برنامه نویسی در Delphi
    پاسخ: 56
    آخرین پست: دوشنبه 03 مهر 1385, 08:00 صبح
  2. خطا در استفاده از response.Redirect در asp
    نوشته شده توسط MOHSEN731 در بخش Classic ASP
    پاسخ: 7
    آخرین پست: شنبه 18 بهمن 1382, 12:23 عصر
  3. خطا در استفاده از کامپوننت
    نوشته شده توسط DataMaster در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: دوشنبه 17 آذر 1382, 18:16 عصر
  4. در استفاده از Crystal Report مشکل دارم. کمکم کنید
    نوشته شده توسط آتینا در بخش VB.NET
    پاسخ: 0
    آخرین پست: چهارشنبه 05 شهریور 1382, 19:33 عصر
  5. مشکل در استفاده از DeleteFile
    نوشته شده توسط mostafa612003 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: شنبه 20 اردیبهشت 1382, 12:53 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •