PDA

View Full Version : سوال در رابطه با Chekbox ها !!



merlin_vista
شنبه 19 آبان 1386, 00:01 صبح
آقا من در یک قسمت سایت حدود 20 چک باکس دارم :متفکر:
حالا عنوان هر کدام هست : مثلاً : حمام , استخر , و . . . . .
کاربر میتونه هر کدام را خواست تیک بزنه
حالا من باید آنهایی را که تیک زده در یک متغییر رشته ای ذخیره کنم و بعد آن متغییر را در بانک ذخیره کنم ؟
میشه بگید باید چه جوری کدش را بنویسم :ناراحت:

ClaimAlireza
شنبه 19 آبان 1386, 07:45 صبح
حالا هر چندتا میخای از این checkBox رو بایند کن.



SqlCommand cmd = new SqlCommand("insert into tb_dg (thermalprotection) values (@thermalprotection)", con);


cmd.Parameters.AddWithValue("@thermalprotection", thermalprotection.Checked);

merlin_vista
شنبه 19 آبان 1386, 09:36 صبح
نه اینجوری نمیخام عزیز ببین من میخواهم آنهایی که چک خوردن (تیک دارند ) در یک متغیر ذخیره بشه و بعد آن متغییر را تو بانک ذخیره کنم !! در ضمن نوشته چک باکس را

ClaimAlireza
شنبه 19 آبان 1386, 09:47 صبح
خوب خیلی سادست.
یه متغیر از نوع string تعریف کن بعد چک کن، ببین هر کدوم تیک خورده بودن خاصیت Text اون checkBox رو به متغیرت اضافه کنی .

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


string s;
if (CheckBox1.Checked == true)
{
s += CheckBox1.Text;
}


موفق باشید...

merlin_vista
شنبه 19 آبان 1386, 13:45 عصر
ممنوا از جواب شما !!
حالا اگر بخواهیم بین هرکدام یک "و" بگزاریم باید چکار کنیم !!!
نمیخواهم به صورت دستی باشه

s += CheckBox1.Text+"و";
مثل بالا نه !!
جور دیگه میشه یا نه

hamedgh
شنبه 19 آبان 1386, 13:53 عصر
بهترین کار این است که در یک حلقه foreach تمام checkbox ها را مرور کنی ومقدارشان را "و" ذخیره کنی فقط در یک حلقه

hamedgh
شنبه 19 آبان 1386, 13:57 عصر
اینم کدش

string s="";
foreach (CheckBox chk in this.Control)
{
if (chk.Checked == true)
{
s += chk.Text + "و";
}
}

ClaimAlireza
شنبه 19 آبان 1386, 14:04 عصر
ممنوا از جواب شما !!
حالا اگر بخواهیم بین هرکدام یک "و" بگزاریم باید چکار کنیم !!!
نمیخواهم به صورت دستی باشه

منظورتونو نمیفهمم!!!

خوب مگه چه مشکلی داره که به قول خودتون به صورت دستی وارد کنید....

مگه کارتون رو راه نمیندازه؟

merlin_vista
شنبه 19 آبان 1386, 14:42 عصر
ببین من تصمیم گرفتم که چک باکس ها را داخل دیتالیست قرار بدم و از بانک Tex چک باکس را بخونم !!! حالا میخواهم هر چک باکسی را که تیک زدم به متغییر اضافه بشه ؟ اینا چطور بنویسم میشه راهنمائی کنید . تا حدودی میدونم (مثلاً این که با ForEch باید نوشت) ولی نمیدونم چه شکلی

Judy abbott
شنبه 19 آبان 1386, 17:47 عصر
سلام

کافیه با استفاده از checkboxlist.item.count حلقه foreach رو بنویسی ، البته باید از CheckBoxList استفاده کنی.
و در هر حلقه از item استفاده کنی ، مثل زیر :



for (int i = 0; i < checkboxlist1.Items.Count; i++)
{
if (checkboxlist1.Items[i].Selected)
{
//دستوری که می خوای
}
}

merlin_vista
شنبه 19 آبان 1386, 17:53 عصر
نه با CheckBoxList !!!!!!! با ‍ CheckBox

Judy abbott
شنبه 19 آبان 1386, 18:02 عصر
حوب از نظر کارایی خیلی فرق نداره و راحت تر میتونی بهش وصل و با Data base پرش کنی وگرنه برای هر کدوم از Check box ات ،چون با اسم و مشخصات خاص خودشنو هستند باید جدا کد بنویسی
یعنی باید برا هر کدوم یه if بنویسی و به متغیرت اضافه کنی ، فرق نمی کنه text اونا رو از DB بخونی یا نه !!!!‌

merlin_vista
شنبه 19 آبان 1386, 18:49 عصر
ببین من یک چک باکس گذاشتم تو دیتالیست و بعد Text آن را با DB ام بایند کردم !!!
و بعد به تعداد سطر ها تکرار میشه . بعد من میخواهم کاربر هر کدام را که تیک زد و روی دکمه کلیک کرد آنهایی که تیک زده است در یک متغییر Text آنها به هم بچسبه !!!!

merlin_vista
شنبه 19 آبان 1386, 20:56 عصر
آقا مشکل حل شد
کدش را اینجوری نوشتم :

foreach (GridViewRow ch in GridView1.Rows)
{

CheckBox chk = (CheckBox)ch.FindControl("CheckBox1");
if (chk.Checked == true)
{
Servis += chk.Text + " , ";
}

}

mp2009
شنبه 19 آبان 1386, 22:23 عصر
پس دکمه تاییید رو بزن دوست عزیز