PDA

View Full Version : سوال: تشخیص انتخاب چکباکس در گرید



zarrinnegar
پنج شنبه 21 دی 1391, 20:27 عصر
با سلام
من یک گرید دارم که داخلش چند تا فیلد گذاشتم واز یک Template field هم استفاده کردم و یک چکباکس داخلش گذاشتم
حالا وقتی اطلاعات رو نشون میدم میخوام وقتی کاربر روی چک باکس کلیک کرد و تیک زد و یا تیک رو برداشت محتوای فیلد کد اون ردیف رو تشخیص بدم و برای کار دیگه استفاده کنم باید چیکار کنم

اگه میشه روی فیلد از نوع چک باکس این کار رو کرد هم اگه توضیح بدین ممنون میشم

roxf18
پنج شنبه 21 دی 1391, 22:00 عصر
باسلام دوست عزیز بیا تو دیتابیس فیلدی براش توگرید template گزاشتی را از نوع Bit تعریف کن و تو گرید هم اون چک باکس را حذف کن گرید خودش بصورت اتو بهش چک باکس اختصاص میده بعد یک فیلد command بزار برا گریدت آپدیت وDelete...حالا وقتی که صفحت اجرا شد دکمه آپدیت کلیک کن میتونی تیک چک باکس را تغییر بدی

myasahmadi
پنج شنبه 21 دی 1391, 22:09 عصر
کافی است از کد زیر برای کنترل وضعیت چک باکس ردیف i ام گریدویو استفاده کنید

("checkbox ck= (CheckBox)gridview.Rows[i].Cells[5].FindControl("chkdelete
(if (ck.Checked
}
{
که در کد بالا فرض شده چک باکس ستون پنجم گرید ویو است

zarrinnegar
پنج شنبه 21 دی 1391, 23:03 عصر
باسلام دوست عزیز بیا تو دیتابیس فیلدی براش توگرید template گزاشتی را از نوع Bit تعریف کن و تو گرید هم اون چک باکس را حذف کن گرید خودش بصورت اتو بهش چک باکس اختصاص میده بعد یک فیلد command بزار برا گریدت آپدیت وDelete...حالا وقتی که صفحت اجرا شد دکمه آپدیت کلیک کن میتونی تیک چک باکس را تغییر بدی
اینطوری کاربر باید هی کلیک کنه روی کامند بعد تیک بزنه ولی من میخواستم ببینم میشه فقط روی چک باکس کلیک کنه و ما تشخیص بدیم کدوم ردیفه یا نه

zarrinnegar
پنج شنبه 21 دی 1391, 23:05 عصر
کافی است از کد زیر برای کنترل وضعیت چک باکس ردیف i ام گریدویو استفاده کنید

("checkbox ck= (CheckBox)gridview.Rows[i].Cells[5].FindControl("chkdelete
(if (ck.Checked
}
{
که در کد بالا فرض شده چک باکس ستون پنجم گرید ویو است
خوب اینو توی کدوم Event باید نوشت و یا باید کجا نوشت که وقتی چک باکس تیک خورد این کد ها اجرا بشه

myasahmadi
پنج شنبه 21 دی 1391, 23:34 عصر
خوب اینو توی کدوم Event باید نوشت و یا باید کجا نوشت که وقتی چک باکس تیک خورد این کد ها اجرا بشه
این کد را در event مربوط به کلیک button ی که در صفحه قرار دارد می گذاری

Saber_Fatholahi
جمعه 22 دی 1391, 01:30 صبح
خوب دوست من روال کار من به این شکله
1- در کد دکمه مورد نظر (کثلا می خوایم گزینه هایی که تیک داره حذف کنیم) کد هاتو بنویس
2- در یک حلقه سظرهای GridView پردازش کن
3-داخل حلقه به ازای سطر توسط FindControl نام چک باکستو جستجو کن
4-پس از بدست آوردن بررسی کن تیک داره یا نه
5- با توجه به مرحله 4 عملیاتت انجام بده

اینم یه نمونه کد که امیدوارم به دردت بخوره

foreach (GridViewRow row in GridView_Employees.Rows)
{
if (row.RowType != DataControlRowType.DataRow) continue;
var checkBoxDelete = (CheckBox)row.FindControl("CheckBox_Delete");
if (!checkBoxDelete.Checked) continue;

عملیات مورد نظر
}

zarrinnegar
جمعه 22 دی 1391, 01:50 صبح
با تشکر از راهنمایی شما
راه حل های متفاوتی که از طریق Command و یا دکمه دیگه بخوام انجام بدم رو میدونم

ولی من میخواستم که در لحظه تیک زدن این کار انجام بشه

شاید توی وب نشدنی باشه ولی این که شدنیه و یا نشدنیه نمیدونم
من تجربه توی Win App دارم و توی وین فرم میشه همه کار کرد ولی توی وب تجربه ای ندارم بخاطر همینه که این سوال رو پرسیدم ببینم اصلا میشه یا نه

این گرید رو هم برای حضور و غیاب دانش آموزان میخوام درست کنم که استاد سر کلاس فقط با تیک زدن بتونه کارشو انجام بده و هی نره دکمه ویرایش رو بزنه و یا اینکه در آخر بیاد روی دکمه ای کلیک کنه و نتیجه ذخیره بشه یعنی به محض تیک زدن و یا برداشتن تیک , به دیتابیس بگم که این یک رکورد رو Update کنه با کد دانش آموزی و مقدار چک باکس

Saber_Fatholahi
جمعه 22 دی 1391, 16:24 عصر
این کار هم شدنیه با jquey که اسونتره با javascript هم میشه رویداد click چک باکس بنویس که عملیات مورد نظر واستون انجام بده