نمایش نتایج 1 تا 18 از 18

نام تاپیک: نحوه استفاده از checkbox بجای ستون select

  1. #1

    نحوه استفاده از checkbox بجای ستون select

    در پروژه ای که دارم روش کار می کنم
    توی یه وب فرم یه دیتا گرید گذاشتم می خوام به جای ستون select از checkbox استفاده کنم
    بطوریکه کاربر چک باکس ها رو یجا انتخاب کنه و بعد با یه کلیک روی دکمه ای خاص به سرور postback شده تا در code behind روی رکورد های انتخاب شده در دیتا گرید پردازشی انجام دهم
    در حالت معمولی گرید با هر کلیک روی گزینه select دیتا گرید یه post back انجام می شه که این اصلا مقرون به صرفه نیست.
    اینو چه جوری انجام بدم؟؟؟؟

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    داش آکل: هر جایی سنتی داره، سایت برنامه نویس هم همین طور. بر طبق قانون شماره 3 شما موظفید از تیتر مناسب برای سوالتان استفاده کنید.
    این دفعه رو من براتون اصلاح کردم، اما دفعه بعد ممکنه تاپیک تون حذف شه.

    از ما گفتن بود، حالا خود دانی.

    امضا: طیب!

  3. #3
    ریس من شرمندم .....
    اما کارم گیره می شه جواب بدید!!

  4. #4
    کاربر دائمی آواتار Mahdavi
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    ایران - میگن تهرون
    پست
    606
    دوست عزیز
    به datagrid خودت تو قسمت columns یه template cloumn اضافه کن
    بعد برو تو قسمت edit این template و یه chekbox بزار.
    CheckBox Disable = (CheckBox) e.Item.FindControl("Disabled");


    به شرطی که اسمه اون chekbox رو Disabled گذاشته باشی.
    با کد بالا بهش دسترسی داری :lol:

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    روش فوق فقط برای یک ردیف بسیار مناسب است :flower:

    ولی اگر تعداد ردیف ها زیاد بود و قرار بود از بین 1000 ردیف تعداد تیک خورده شده انتخاب و درج شود باید از روش زیر استفاده کرد:

    		public Int32[] SelectedIndexes 
    {
    get
    {
    System.Collections.ArrayList selectedIndexList = new System.Collections.ArrayList();

    foreach( DataGridItem item in DataGrid1.Items )
    {
    Control foundControl = item.FindControl("chkHRow");
    CheckBox Checkselector = foundControl as CheckBox;
    RadioButton radioselector = foundControl as RadioButton;
    if ( Checkselector != null && Checkselector.Checked )
    {
    selectedIndexList.Add( item.ItemIndex );
    }
    else if ( radioselector != null && radioselector.Checked )
    {
    selectedIndexList.Add( item.ItemIndex );
    }
    }
    return (Int32[])selectedIndexList.ToArray (typeof( System.Int32 ) );
    }
    }


    و برای استفاده :

    			foreach(int i in SelectedIndexes )
    edit_Radifs(i+1);

  6. #6

    توضیح بیشتر

    اقای نصیری این کلاسی که تعریف کردی رو می شه یه کمی توضیح بدی و بفرمایی که چطور می تونم اونو توی وب فرم بذارم و استفاده کنم

  7. #7

    توضیح بیشتر

    مهدوی عزیز ایا این روش برای چک کردن همه سطرها قابل استفاده است؟ چطور می شه همه سطر های که تیک خورده اند رو بازیابی کرد؟ با تشکر از همه دوستان

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    اولا اون کلاس نیست و ایندکسر است ثانیا تنها کافی است همانطور که دوستمان گفتند یک ستون template اضافه کنی و در آن یک چک باکس به نام chkHRow را اضافه کنی
    سپس ایندکسر را می نویسی
    و روش استفاده هم گفته شد.

  9. #9
    کاربر دائمی آواتار SoheilKH
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    haftbit.com
    پست
    315
    من برای چک کردن ستون ها از همان روشی که آقای نصیری گفتند استفاده می کردم
    اما مشکلی که من بر می خورم TimeOut (از دست این اینترنت ایران :-x )است

    راه دیگه ای که برای این کار استفاده کردم استفاده از کدهای جاوا است (مثل ادرس بوک سایت یاهو).

  10. #10

    Indexer چیست؟

    می شه توضیح بدین Indexer چیه؟

  11. #11
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    CheckBox Disable = (CheckBox) e.Item.FindControl("Disabled");
    من از کد بالا برای پیدا کردن checkboxاستفاده کردم .ولی در قسمت e.itemدارای خطا بود.بعدش از کد زیر استفاده کردم:

    DataGridItemCollection items=DataGrid1.Items;
    for (int i=0; i<items.Count; i++)
    {
    CheckBox cb= (CheckBox)items[i].FindControl&#40 ;"disable");

    if ((cb != null) && cb.Checked)
    {
    Response.Write("salam");
    //ReadRecords ("select * from a_amanat");
    }
    }

    در اینجا کلمه salamرا تایپ میکنه.ولی من نمیدونم چطور تشخیص بدم که checkboxکدوم سطر علامت زده شده؟
    کل کار من با checkboxها اینه که در یک سیستم امانتداری کتاب؛ کاربر بتونه با یک تیک زدن تحویل کتاب را وارد کند.یعنی اطلاعات کتابهایی که امانت هستند در دیتاگرید میاد و میخوام هرکدوم که checkboxتحویلشون زده شد ؛در دیتابیس فیلد تحویل trueبشه.میشه راهنمایی کنید؟ :oops:
    در ضمن اگه ممکنه این indexerرو هم یک توضیحی راجع بهش بدید .... :roll:

  12. #12
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    از روشی که دربالا توضیح دادم استفاده کنید. این روش برای من تقریبا یک تمپلیت کاری شده...
    در مورد ایندکسر هم به جزوه ی سی شارپ من مراجعه کنید (21 قسمتی)، یک مقاله کامل دارد.

  13. #13
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    متاسفانه اون جزوه 21 قسمتی رو پیدا نکردم.اما تونستم از این indexerاستفاده کنم.فقط یک سوال و اینکه اگر بخوام تشخیص بدم که تیک checkboxکدوم رکورد خورده باید از همون روش editو datakeyfieldاستفاده کنم؟چون من شماره چک باکس رو دارم .ولی نمیدونم مثلا checkbox8مال کدوم IDاست.چون برای updateکردن جدول نیاز به این دارم که بدونم کلیدش چیه.
    میشه یه کم راجع به این قسمت for each توضیح بدید؟ :oops:

  14. #14
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    اون جزوه رو از صفحه ی خانگی جدید من در LYCOS می تونید پیدا کنید. اگر فیلتر شده بود بفرمایید آنرا در کتابخانه قرار می دهم.
    شما وقتی شماره چک باکس را دارید (شماره ردیف را دارید) در همان ردیف دنبال دو فیلد حداقل بگردید تا آیتم مربوطه در دیتابیس پیدا شود و قابل ادیت باشد. راه دیگر قرار دادن یک کنترل مخفی(یا غیرمخفی) است که شماره آیتم ها را به آن بایند کنید و سپس به راحتی آنرا خوانده و بر مبنای آن ادیت نمایید. و یا خیلی راحت شماره کلید را هم نمایش بدهید و سپس آنرا بخوانید.

  15. #15
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    1-خیلی ممنون از وقتی که میذارید
    2-اون قسمت فیلتر شده بود.
    3-همه کارها انجام شده .فقط موندم توی دستور sqlبا چه کدی مقدار checkboxرو بفهمم.مثلا میخوام توی sqlدر قسمت updateبذارم :

    a_tahvil=(check)i

    چون فیلد a_tahvilبولین است.اما اینطوری که نوشتم جواب نمیده.میشه بگید دقیقا syntaxچیه؟

  16. #16
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    متاسفانه در کتابخانه جا نشد! در بخش سی شارپ آپلودش کردم:
    http://www.barnamenevis.org/viewtopic.php?t=14879

    ===========
    اون ایندکسر به صورت یک آرایه هوشمند اندیس های این چک باکس ها را بر می گرداند (در یک حلقه ی for each که در بالا مثال زده شده). بنابراین نیاز به کار اضافی ندارد. فقط دقت داشته باشید که chkHRow (که در ایندکسر بکار رفته) نام چک باکسی است که در ستون تمپلیت اضافه شده است.

  17. #17
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    خیلی خیلی ممنونم.دیگه حل شد. (:D) :flower: :gift:

  18. #18

    نقل قول: نحوه استفاده از checkbox بجای ستون select

    سلام من روی یک نرم افزار صندوق قرض الحسنه کار میکنم میخواهم هر ماه به حساب تمام صاحبان حساب بطور خودکار مبلغی را اضافه کند

تاپیک های مشابه

  1. سوال در مورد CheckBox
    نوشته شده توسط amirferdowsi در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 12 آذر 1386, 16:50 عصر
  2. مشکل در خواندن وضعیت CheckBox
    نوشته شده توسط m_nejad در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 05 اسفند 1385, 19:05 عصر
  3. چطور میشه به checkbox که در برنامه new شده دسترسی پیدا کرد ؟
    نوشته شده توسط azim_m در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: پنج شنبه 27 اسفند 1383, 00:05 صبح
  4. پاسخ: 1
    آخرین پست: چهارشنبه 26 اسفند 1383, 05:30 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •