PDA

View Full Version : تغيير سطرها در gridview



jingiliboyz
چهارشنبه 19 اسفند 1388, 09:23 صبح
با سالام دوستان من يك تصوير ضميمه مي كنم نگاه كنيد من مي خوام توي قسمت مديريت سايتم يه همچين چيزي دست كنم كه مدير سايت بتونه جاي سطر هاي يك گريد رو باهم عوض كنه با اينكار ميتونه مكان قرار گرفتن منو ها توي سايت رو هم عوض بكه ميشه راهنمايي كنيد من گريد و گذاشتم و لي نمدونم از چه متودي براي عوض كردن سطر ها استفاده كنم از datast يا چيز ديگه اي كه بتونم سطر ها رو جا بجا بكنم راهنمايي اگه ميشه بكنيد يا نمونه اي براي حركت بين سطر ها اگه داريد برام بزاريد تا ببينم

jingiliboyz
یک شنبه 23 اسفند 1388, 13:02 عصر
كسي نبود جواب بده ؟

Milad Mohseny
یک شنبه 23 اسفند 1388, 13:34 عصر
سطر ها رو جا بجا بكنم
ببين راحت ترين راهي كه به نظر من هست اينكه يه فيلد به نام مثلاً اولويت از نوع عددي به جدولت اضافه كني و اون رو در GridView هم به كاربر نمايش بدي و به كاربر اجازه بدي مقدارش رو به دلخواه بياد تغيير بده مثلاً وقتي GridView رو به كاربر نشون ميدي كاربر بياد تو سطر سوم مقدار فيلد اولويت رو 1 كنه و مثلاً سطر چهارم مقدار فيلد اولويت رو 2 كنه و الي آخر. بعد از اينكه اين تغييرات رو تو بانك ثبت كردي مثلاً وقتي دوباره صفحه Refresh بشه يا اگه از Ajax استفده ميكني وقتي كاربر دكمه ثبت رو زد و AsyncPostBack اتفاق افتاد دوباره تو رويداد كليدت GridView رو Bind كن و دقت كن تو دستور Sql كه مقدار اين جدول رو داري ميخوني، سطر ها رو بر اساس فيلد اولويت Sort كني اينجوري هموني ميشه كه ميخواهي. وقتي هم ميخواهي با استفاده از ركورد هاي اين جدول منو هات رو نمايش بدي باز هم اگر سطر هاي اين جدول رو بر اساس فيلد اولويت مرتب كني هموني ميشه كه كاربر تنظيم كرده بود. البته اين ساده ترين راهيه كه ميتوني انتخاب كني. در ضمن براي تغيير اولويت اگه نميخواهي كاربر دستي عدد وارد كنه ميتوني از NumericUpDownExtender مربوط به Ajax استفاده كني اگرم نميخواهي از Ajax استفاده كني نمونه هاي ساده تري از NumericUpDown كه با Js نوشته شده تو اينترنت ريخته.
البته اگر هم ميخواهي از همون Link بالا/پايين كه خودت تو عكس ضميمه كردي استفاده كني همون كارهايي كه در بالا گفتم رو انجام بده فقط مقدار اولويت رو به صورت textbox نمايش نده از Ajax استفاده كن و gridview رو تو Updatepanel قرار بده و تو رويداد كليك Link بالا/پايين يكي از مقدار فيلد اولويت كم كن يا بهش اضافه كن و دوباره Gridview رو Bind كن.
بازم ميگم اين ساده ترين راه و البته غير optimize هست.
اگه بد توضيح دادم بگو تا بيشتر توضيح بدم.

به اينها هم دقت كن:
http://www.webswapp.com/categories/ASPNET2/DataGridReorder/Default.aspx
http://www.dotnetspider.com/forum/158237-Gridview-move-row-position-up-down-button.aspx
http://www.c-sharpcorner.com/UploadFile/Srinivas.Kotra/SwappingGridViewrows08222009154717PM/SwappingGridViewrows.aspx

hamed2661
یک شنبه 23 اسفند 1388, 14:16 عصر
ميلاد جان
كليت چيزي كه شما در پاسخ دوستمون فرمودين درست ... فقط نكته اي كه ميمونه اينه كه با زياد يا كم كردن عدد اولويت يك سطر، اين عدد با عدد اولويت يكي ديگه از سطرها تكراري ميشه. لاجرم بايد قبل (ويا بعد) از كم يا زياد كردن اولويت، مقدارش با سطر قبلي يا بعديش جابجا بشه تا اولويت تكراري پيش نياد.

Milad Mohseny
یک شنبه 23 اسفند 1388, 15:11 عصر
كليت چيزي كه شما در پاسخ دوستمون فرمودين درست ... فقط نكته اي كه ميمونه اينه كه با زياد يا كم كردن عدد اولويت يك سطر، اين عدد با عدد اولويت يكي ديگه از سطرها تكراري ميشه. لاجرم بايد قبل (ويا بعد) از كم يا زياد كردن اولويت، مقدارش با سطر قبلي يا بعديش جابجا بشه تا اولويت تكراري پيش نياد.
درسته.
البته من بيشتر نحوه كارو توضيح دادم ديگه خود برنامه نويس بايد از زواياي مختلف برنامشو بررسي كنه.
لينك هايي هم كه ضميمه كردم كاربردي هست و خيلي از مشكلات رو برطرف كرده :لبخندساده:

hamed2661
یک شنبه 23 اسفند 1388, 15:25 عصر
لينك هايي هم كه ضميمه كردم كاربردي هست و خيلي از مشكلات رو برطرف كرده :لبخندساده:

100% موافقم

yakooza2009
یک شنبه 23 اسفند 1388, 15:29 عصر
دوست عزیزمون کاملا درست فرمودند
و جاب پرسش شما هم تقریباً همینه
البته میتونی با کیلیک روی بالا یا پایین خودت مقدار این اعداد رو کم و زیاد کنی
بعد کانکشن رو به صورت صعودی سلکت کن
خود سطر ها درست میشه