PDA

View Full Version : حرفه ای: ساخته منوی تو در تو به همراه Sort آنها



سعید کشاورز
پنج شنبه 29 مهر 1395, 11:17 صبح
سلام.
دارم یه سایت برای یه شرکت میزنم که از بنده منوی داینامیک خواستن.( یه چیزی مثل برگه ها در وردپرس)
یعنی کاربر قادر باشه به منوی بالای سایت هر چقدر دلش می خواد گزینه اضافه و کم کنه.
مشکلی که در حال حاضر دارم اینه که این منو باید تو در تو باشه تا N سطح.
حالا مشکل توی Sort کردن اون دارم.
کاربر آخرین منویی رو که ایجاد کنه و لینک صفحه اون رو مشخص کنه در ابتدای منو قرار میگیره و اگه بخواد گزینه ای که داره اضافه میکنه در انتهای منو قرار بگیره باید کل منو رو پاک کنه و از نو بسازه.
حالا اینجا یه فیلد میگیریم به اسم اولویت نمایش که میتونه عدد بده برای اولویت..اما مشکلی که هست منو ها باید تو در تو باشه..
از اونجا که تازه به سمت برنامه نویسی وب اومدم خیلی اطلاعات دقیقی از این سناریو و راه حل اون ندارم..
یک سری سرچ زدم که بهترین پلاگینی که برای این کار وجود داره jstree هستش..
گفتم این تاپیک رو بزنم و از تجربه دوستان برنامه نویس هم استفاده کنم.
نظرتون چیه برای حل این مورد؟
اگر هم آموزش کاربردی jstree رو دارین یا یه نمونه کد ممنون میشم در اختیارم قرار بدین .

bahar0011
پنج شنبه 29 مهر 1395, 18:45 عصر
سلام
برای ارتباط درختی فیلد parentId رو به منو اضافه کنید
هنگام ثبت منو فیلد parentId هم میشود پر شود لیستی از منو های قبلی به صورت dropdownlist
برای سورت هم نیاز به یک فیلد دارید به اسم priority که اولویت نمایش رو در آن ذخیره کنید
بهترین ابزار برای سورت هم http://dbushell.github.io/Nestable/
می باشد.

Moien Tajik
پنج شنبه 29 مهر 1395, 21:23 عصر
http://www.dotnetawesome.com/2014/06/how-to-populate-treeview-nodes-dynamic-ondemand-mvc4.html
http://www.dotnetawesome.com/2014/06/how-to-create-treeview-with-database-data-mvc4-aspnet.html

سعید کشاورز
پنج شنبه 29 مهر 1395, 22:09 عصر
سلام
برای ارتباط درختی فیلد parentId رو به منو اضافه کنید


این رو مشکل ندارم و میتونم تا N سطح رو ایجاد کنم..




برای سورت هم نیاز به یک فیلد دارید به اسم priority که اولویت نمایش رو در آن ذخیره کنید
بهترین ابزار برای سورت هم http://dbushell.github.io/Nestable/

می باشد.


این پلاگینی که دادین دقیقا همون چیزیه که نیاز دارم..بحث Sort کردن..
یعنی الان من باید بیام یه ؤView واسه Insert کردن منو ها داشته باشم و یه View دیگه برای مرتب کردن اونها به وسیله همین پلاگینی که معرفی کردین درسته؟

یه نمونه سمپل پیاده سازی شده دارین واسه این قضیه توی MVC؟

سعید کشاورز
پنج شنبه 29 مهر 1395, 22:10 عصر
http://www.dotnetawesome.com/2014/06/how-to-populate-treeview-nodes-dynamic-ondemand-mvc4.html
http://www.dotnetawesome.com/2014/06/how-to-create-treeview-with-database-data-mvc4-aspnet.html

ممنون..اینارو قبلا دیده بودم
این پلاگین رو ببینید
http://dbushell.github.io/Nestable/
دقیقا همونه که میخام..اما نمیدونم الان چجوری باید خروجی ای که این پلاگین میده رو توی دیتابیس ذخیره کنم.

Moien Tajik
پنج شنبه 29 مهر 1395, 22:34 عصر
فکر میکنم این چیزی هستش که میخواید ، بعد از هر تغییر اون order جدید که afterId هست رو از طریق Ajax میفرسته که صفحه رفرش نخوره و اون order رو آپدیت میکنه :
http://www.quzzfeed.com/thread/zfddmqdz-how-to-save-nested-sortable-menus-in-database-in-mvc-4-razor.html
http://8np.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%84%DB%8C%D8%B3%D8%AA-%D9%85%D8%B1%D8%AA%D8%A8-%D8%B4%D9%88%D9%86%D8%AF%D9%87-%D8%A8%D8%A7-asp-net-mvc-%D9%88-jquery/
http://stackoverflow.com/questions/23559052/how-to-save-nested-sortable-menus-in-database-in-mvc-4-razor

ahmad156
جمعه 30 مهر 1395, 10:56 صبح
شما به ازای هر سطح یک اولویت جداگانه داشته باشین.
اولویت ها رو با اعداد 1 الی ... نسبت بدین ، بدین صورت که 1 بیشترین اولویت و هر چه عدد بیشتر بشه اولویت کمتری داره
به ازای هر عضو جدید کمترین اولویت رو اختصاص بدین یعنی 1 به علاوه کمترین اولویت (که میشه بیشترین عدد)
در هر سطح، اگر نیاز به تغییر اولویت بود ، اولویت اون رو یا با اولویت بالاتری یا پایین تری عوض کنین