PDA

View Full Version : قرار دادن آيتم هاي منو در مکان دلخواه



bftarane
شنبه 04 آذر 1391, 17:43 عصر
سلام.
من از لينک زير براي ايجاد منوي دايناميک استفاده کردم.
http://barnamenevis.org/showthread.php?215065
حالا سوالي دارم.
لطفاً اين عکس رو ببينيد.
95539
فرض کنيد در اون جاهايي که با رنگ قرمز مشخص کردم مي خوام يه آيتم جديد درج بشه يا اينکه مثلاً به فرض منوي اخبار بياد بين درباره ما و تماس با ما قرار بگيره. براي عملي شدن اين قضيه چه راهکاري پيشنهاد مي کنيد؟
با توجه به اين که اين منو تا n سطح مي تونه پيش بره.

من سرچ زدم ولي به نتيجه اي نرسيدم.

ya30ien2
شنبه 04 آذر 1391, 20:32 عصر
من خودم اومدم یک فیلد اضافه کردم که ردیف آیتم ها به دست کاربر تنظیم بشه
مثلا (صفحه اصلی =1 و فروشگاه=2 و ...)
بعد برای خواندن ابتدا بر اساس اون فیلد ردیف میکنم بعد آیتم ها رو میخونم
امیدوارم متوجه شده باشید

bftarane
شنبه 04 آذر 1391, 22:21 عصر
نه متوجه نشدم. منظورتون Order By هست؟
خوب الآن صفحه اصلي 1 فروشگاه 2 مثلاً بخواهيم يه آيتم ديگه مثلاً درباره ما بياد بين اينا قرار بگيره چي کار بايد کنيم؟
و اينکه رديف به دست کاربره يعني چطور مثلاً رديف رو تو تکست باکس وارد مي کنه دستي؟ يا در گريدويو چک باکس رو تيکش رو ميزنه يا...؟
و يه مسئله ديگه فکر کنم کاري که شما مي گيد در حالتي که آيتم ها منو کم باشه جواب بده نه وقتي n سطحي هست. درست نمي گم؟

hamed_hossani
شنبه 04 آذر 1391, 22:43 عصر
سلام
منظور دوستمون اینه
یک فیلد مثلا به نام order به

CategoryID------int کلید اصلی
ParentID------ int
name------nvarchar(50)
url------ nvarchar(200)
اضافه کن.

bftarane
شنبه 04 آذر 1391, 23:06 عصر
ببينيد اينو که مي دونستم مثلاً بايد يه فيلد به اسم Order يا Position تو ديتابيس باشه.
خوب اين Position ها که دستي که داده نمي شن وقتي تعداد سطوح منو اينقدر زياد باشه درسته؟ خوب فرضاً از منوي دهم زير منوي مثلاً چهارم دوباره زيرمنوي مثلاً دوم فرضاً داريم بورس کالاهاي داخلي خوب الآن ادمين چه پوزيشني بايد به اين بده يا چه Order اي بده؟ چه جوري؟ با توجه با جوابهاي خلاصه شما احتمال مي دم بايد خيلي ساده باشه ولي من متوجه نمي شم.
نمي دونم يعني مي گيد فرضاً خانه ما رو به منو ادمين اضافه مي کنه Order رو بده 1 آره؟ بعد يه آيتم اضافه کنه مثلاً تماس با ما Order اون رو بده 2. الآن مي خواد يه آيتم بين اينا باشه خوب الآن بايد order اون بشه 2 و تماس با ما بشه 3. خوب يعني ويرايش 2 تا فيلد.خوب وقتي زياد ميشه تعداد چي کار کنه؟

hamed_hossani
شنبه 04 آذر 1391, 23:40 عصر
اینو پیدا کردم
http://www.prodevtips.com/wp-content/uploads/2010/03/jquery_drag_and_drop.png
دمو
http://www.prodevtips.com/demos/drag_drop_tree/
منبع:
http://www.prodevtips.com/2010/03/07/jquery-drag-and-drop-to-sort-tree/

hamed_hossani
یک شنبه 05 آذر 1391, 00:13 صبح
نمی دونم چطور save کرده!
ولی اگه می خواستم ذخیره کنم ul , li ها را پارس می کردم(بررسی می کردم) و با این بینش http://www.algorithmha.ir/images/012_01.jpg در همان فیلد position جای می دادم.
الیته راهی که گفتم شاید سخت و وقت گیر باشد.

bftarane
یک شنبه 05 آذر 1391, 00:28 صبح
جالب بود. حالا فردا ببينم مي تونم کاري کنم يا نه.

ya30ien2
یک شنبه 05 آذر 1391, 12:42 عصر
ببینید اضافه بر فیلدها یک فیلد دیگه که بصورت دستی مقدار دهی بشه
که برای جالبی کار میتونید به عهده کاربر هم بزارید
حالا با Order By اون فیلد رو ردیف کنید و بعد فراخوانی کنید
مثلا من یک فیلد بنام Row اضافه کردم و بعد برای خواندن کد زیر رو نوشتم
select * from Menu where Status=@status order by Row
status هم فعال بودن یا نبودن هستش که کاربر در بعضی مواقع میتونه اون رو false کنه که دیگه برای کاران نمایش داده نشه

bftarane
یک شنبه 05 آذر 1391, 13:38 عصر
سلام.
همين يه خورده پيش همين کاري که شما گفتيد رو انجام داده بودم و نتيجه گرفتم ممنونم از شما من پاسخ اول شما رو خوب متوجه نشده بودم
ولي لينک زير رو که خوندم و امتحان کردم به نتيجه رسيدم اونجا هم همون حرف شما رو گفته بود
http://forum.how2learnasp.net/ShowTopic.aspx?Code=3339
يعني اومدم در جدول خودم اعداد مختلف دادم به پوزيشن نمي دونم چرا فکر مي کردم اين طوري جاها به هم مي ريزه ولي به هم نريخت
حالا چطوري کاربر وارد کنه پوزيشن رو يوزرفرندلي تره مثلاً اطلاعات رو در يک گريد نشون بدم همراه پوزيشن، بعد کاربر پوزيشن دلخواهش رو در يک تکست باکس وارد کنه خوبه؟

ya30ien2
یک شنبه 05 آذر 1391, 14:00 عصر
شما میتونی برای راحتی کاربر یک dropdownlist بزاری و والدها رو داخلش نمایش بدی و با انتخاب هر کدوم از اونها فرزندان رو داخل گرید یا یک dropdownlist دیگه نشون بدی برای اعمال تنضیمات
یا به هر روش دیگه ای اینها بستگی به نظریات شخصی داره
البته اینها که گفتم نظر من بود

hamed_hossani
دوشنبه 06 آذر 1391, 00:01 صبح
اگر برای دوستان مقدور است از روش انجام شده تان عکسی بگذارید.:لبخندساده:

bftarane
دوشنبه 06 آذر 1391, 06:24 صبح
سلام اين عکس همون منوي بالاس بعد از دادن پوزيشن. البته من به صورت دستي در جدول وارد کردم. بايد برم سراغ اينکه اين امکان رو به ادمين بدم وارد کنه. اميدوارم اونجا به مشکل نخورم.
95593
اينم يه عکس از جدولم
95594
الآن مثلاً اخبار اومده جاي صفحه اصلي و در منوي خبر جاي فرهنگي و علمي عوض شده.
نمي دونم منظورتون از عکس گذاشتن همين بود يا نه؟ حالا اميدوارم اون دوستمون که فکر مي کنم اين مراحل رو قبلاً کامل انجام دادن اگه دوست داشتن عکسي بزارن.

dabirsiaghi
دوشنبه 06 آذر 1391, 14:03 عصر
بنده قبلا منو ها را روی یک گرید تو در تو قرار میدادم که کاربر خودش بتونه جای منو ها را با شکل های بالا و پایین و چپ و راست تغییر بده
البته میشه از treeview یا حتی خود منو asp نیز برای اینکار استفاده کرد ولی بهترین راه استفاده از یک فایل xml و استفاده از منو asp آست که وقتی فایل xml به منو بایند شد پرفورمنس بهتری داره و نیاز به عملیات recursive برای دریافت لیست آیتم های منو از دیتابیس نیست که به شدت تو کار سرعت رو پائین میاره
95617