PDA

View Full Version : درخواست راهنمایی برای پیاده سازی یک سناریو



بیتا حکمت
چهارشنبه 24 دی 1393, 20:09 عصر
سلام دوستان . لطفا" به عکس زیر دفت کنید.

http://8pic.ir/images/dewdt3j9idlwiw0upgpv.jpg (http://8pic.ir/)

به دلیل زیاد بودن تعداد فرم های ورودی و پیچیدگی ارتباط بین اونا
میخوام اطلاعاتی رو که از دیتاتیل میخونم در زمان اجرا بریزم داخل Textbox هایی که داخل DIV قرار دارند. برای اینکه بدونم کدوم Text هست که کاربر انتخاب کرده و مثلا" دکمه ویراش رو زده ،
اسم تکست ها رو می زارم فرضا" T1AND1 یعنی ستون یک و سطر یک . بعد بر اساس اون کدها تغییرات رو اعمال می دم . اما فعلا" در اولین گام پیاده سازی به این مشکلات برخوردم .


1- فرضا" کاربر یک سطر جدید انتخاب کرد . و حذفش کرد . بنابراین لازمه ما خروجی جدید نشون بدیم . پس چطور می تونم DIV ها و تکست های قبلی رو پاک کنم .

2- اجاکس بلد نیستم، بنابراین مجبورم از آپدیت پنل استفاده کنم . اما چطوری در زمان اجرا آپدیت پنل رو ایجاد و عناصر بالا رو درون آپدیت پنل قرار بدم .

پی نوشت :1 - اونکه نوشتم سطح داشنجو عالی - خوب - بد ، به این خاطر هست که بعضی از سطرهای دارای کامبوباکس هستند که از بین اونا یکی اشون انتخاب میشه و آیتم های این کامبوباکس از جدول دیگر انتخاب میشه

takparz
چهارشنبه 24 دی 1393, 22:53 عصر
سلام
می تونید از Gridview استفاده کنید اما اگه نمی خواید این کارو کنید پیشنهاد می کنم از JQuery AJAX استفاده کنید به این صورت:

1- دکمه حذف یا ویرایش میتونن آی دی داشته باشن تو رویداد click این دکمه ها id اون دکمه که بخشیش آی دی اون سطر(رکورد) هست رو میگیریم مثلا( del_2) که آی دی 2 رو ازش استخراج میکنیم. بعد اونو با AJAX آی دی رو میفرستیم سمت سرور تا با یه متد اون رکوردو حذف کنه. تو رویداد success ایجکس هم اون سطرو با JQuery حذف میکنیم.
2- برای ویرایش هم همینطوره فقط باید اطلاعات دیگه مثل نام و نام خانوادگی و ... رو هم به سمت سرور بفرستید تا آپدیت بشن و تو رویداد success ایجکس هم اون سطرو با آپدیت میکنیم.

aminmousavi
چهارشنبه 24 دی 1393, 23:00 عصر
سلام دوست عزیز . بنطر بنده توی برنامه نویسی تحت وب خیلی نباید پیچیدگی رو زیاد کرد (از لحاظ کد نویسی) ، کاری شما میخواین بکنین زیاد جالب نیست ، خودم اگر میخواستم بنویسم ساده ترین روش این بود که یک صفحه به اسم LevelStudent.aspx می ساختم ، بعد توی اون فقط یک combo قرار میدادم که سطح ها توش load میشد ، بعد از طریق همین datagrid یک تگ a قرار میدادم که کاربر رو به همراه id رکورد به صفحه levelstudent ببره . توی صفحه levelstudent هم چک میکردم که id ولید هست یا نه ؟ اگه بود که با دکمه update اطلاعات همون رکورد رو update میکردم .

اما اگر به هر دلیلی محبورین به این شکل پیاده کنین :
1- ساده ترین راه اینکه یکبار Response.Redirect کنین به همین صفحه یا از طریق تگی که اطلاعت رو ریختین .Controls.Clear(); رو بزنید بعدش دوباره متدی که data رو لود میکرد رو فراخوانی کنین .
2- نیازی نیست آپدیت پنل رو ایجاد کنید ، میتونین کل datagrid رو توی update panel بزارین .

بیتا حکمت
چهارشنبه 24 دی 1393, 23:52 عصر
سلام
می تونید از Gridview استفاده کنید اما اگه نمی خواید این کارو کنید پیشنهاد می کنم از JQuery AJAX استفاده کنید به این صورت:

1- دکمه حذف یا ویرایش میتونن آی دی داشته باشن تو رویداد click این دکمه ها id اون دکمه که بخشیش آی دی اون سطر(رکورد) هست رو میگیریم مثلا( del_2) که آی دی 2 رو ازش استخراج میکنیم. بعد اونو با AJAX آی دی رو میفرستیم سمت سرور تا با یه متد اون رکوردو حذف کنه. تو رویداد success ایجکس هم اون سطرو با JQuery حذف میکنیم.
2- برای ویرایش هم همینطوره فقط باید اطلاعات دیگه مثل نام و نام خانوادگی و ... رو هم به سمت سرور بفرستید تا آپدیت بشن و تو رویداد success ایجکس هم اون سطرو با آپدیت میکنیم.


سلام دوست عزیز . بنطر بنده توی برنامه نویسی تحت وب خیلی نباید پیچیدگی رو زیاد کرد (از لحاظ کد نویسی) ، کاری شما میخواین بکنین زیاد جالب نیست ، خودم اگر میخواستم بنویسم ساده ترین روش این بود که یک صفحه به اسم LevelStudent.aspx می ساختم ، بعد توی اون فقط یک combo قرار میدادم که سطح ها توش load میشد ، بعد از طریق همین datagrid یک تگ a قرار میدادم که کاربر رو به همراه id رکورد به صفحه levelstudent ببره . توی صفحه levelstudent هم چک میکردم که id ولید هست یا نه ؟ اگه بود که با دکمه update اطلاعات همون رکورد رو update میکردم .

اما اگر به هر دلیلی محبورین به این شکل پیاده کنین :
1- ساده ترین راه اینکه یکبار Response.Redirect کنین به همین صفحه یا از طریق تگی که اطلاعت رو ریختین .Controls.Clear(); رو بزنید بعدش دوباره متدی که data رو لود میکرد رو فراخوانی کنین .
2- نیازی نیست آپدیت پنل رو ایجاد کنید ، میتونین کل datagrid رو توی update panel بزارین .

سلام . ممنونم . با این روش که سطح رو داخل کامبوباکس قرار بدم ، مشکل حل میشه (ایده خوبی بود ) اما چطوری می تونم بعد از اینکه اطلاعات دیتاتبل رو داخل گرید ریختم . از همونجا ویراش کنم ، حذف کنم و یک سطر خالی برای گرفتن اطلاعات اضافه کنم .

aminmousavi
چهارشنبه 24 دی 1393, 23:56 عصر
برای درج ، ویرایش ، حذف رکورد ها هم یک صفحه بساز مثلا به اسم Student.aspx اگر id=-1 باشه یعنی میخواین add کنین ، اگر از 0 بزرگتر باشه یعنی قرار هست ویرایش صورت بگیره ، اینجوری یک دیتاگرید دارین که میشه توی همه جا استفاده کرد ، نه اینکه برای هر صفحه یک دیتاگرید مخصوص خودش رو بسازید .

بیتا حکمت
پنج شنبه 25 دی 1393, 00:38 صبح
برای درج ، ویرایش ، حذف رکورد ها هم یک صفحه بساز مثلا به اسم Student.aspx اگر id=-1 باشه یعنی میخواین add کنین ، اگر از 0 بزرگتر باشه یعنی قرار هست ویرایش صورت بگیره ، اینجوری یک دیتاگرید دارین که میشه توی همه جا استفاده کرد ، نه اینکه برای هر صفحه یک دیتاگرید مخصوص خودش رو بسازید .

البته اینی که شما می گین خیلی خوبه ، اما فکر کنم شدنی نیست ، چونکه هدر گرید از حالت پیش فرض (انگلیسی ) به فارسی تغییر می کنه ، همچنین برای هر هدر گرید چندین حالت جست و جو وجود داره که بر اساس اونا نتایج از دیتابیس لود میشه و فیلتر میشه