PDA

View Full Version : چک کردن وضعیت chekbox ها



javad_dargazi
دوشنبه 28 بهمن 1392, 10:26 صبح
باسلام خدمت همه دوستان و مهندسان عزیز

وقتتون بخیر

من تو یک صفحه تقریبا 200 تا checkbox دارم که نامشان از ch1 شروع میشه تا ch200

برای چک کردن هر یک از checkbox ها در کد سی شارپ ، باید تک به تک با یک خط دستور اینکارو انجام بدم.

آیا راهی هست که بشه با حلقه for همه checkbox هارو چک کرد؟
ممنون میشم اگه راهنمائیم کنید.

javad_dargazi
دوشنبه 28 بهمن 1392, 12:02 عصر
چک کردن وضعیت chekbox ها


باسلام خدمت همه دوستان و مهندسان عزیز

وقتتون بخیر

من تو یک صفحه تقریبا 200 تا checkbox دارم که نامشان از ch1 شروع میشه تا ch200

برای چک کردن هر یک از checkbox ها در کد سی شارپ ، باید تک به تک با یک خط دستور اینکارو انجام بدم.
آیا راهی هست که بشه با حلقه for همه checkbox هارو چک کرد؟
ممنون میشم اگه راهنمائیم کنید.

javad_dargazi
دوشنبه 28 بهمن 1392, 15:56 عصر
بعید میدونم از اینهمه مهندس حرفه ای اعضای سایت کسی جواب سوال منو بلد نباشه . یا دوستان کم لطفی میکنن و پاسخ نمی دن ویا سوال من نا مفهوم بوده حتما....

aminaltavista
دوشنبه 28 بهمن 1392, 16:45 عصر
int counter=0,count=0;

foreach(Control control in this.Controls)
{
if(control is CheckBox)
{
CheckBox box=(CheckBox)control;
if(box.Checked)
counter++;
}
count++;
}
MessageBox.Show("تعداد کل "+count+" "+"تعداد چک شده ها "+counter);

javad_dargazi
دوشنبه 28 بهمن 1392, 17:10 عصر
خیلی ممنون از اینکه پاسخ دادید.
من بایدیک سایت بسازم که کارش فروش اینترنتی بلیط کنسرت هستش، میخوام یک جدولی داشته باشم که توش صندلی هارو شبیه سازی بکنم که کاربران موقع خرید فقط چک باکس های هر ردیف و ستون رو انتخاب کنن وبرای اینکار به دونستن موقعیت هر چکباکس نیاز دارم در روشی که شما فرمودید فقط تعداد چکباکس های روشن گزارش میشه . چطوری میتونم این کارو انجام بدم؟ اصلا راه بهتری برای پیاده سازی این پروژه هست؟
آدرس نمونه طراحی شده :
http://www.iranconcert.com/
من طراح app هستم و تسلط کافی به پایگاه داده دارم ولی در طراحی صفحات به مشکل برخوردم..لطفا کمکم کنید.

aminaltavista
دوشنبه 28 بهمن 1392, 19:36 عصر
میخوام یک جدولی داشته باشم که توش صندلی هارو شبیه سازی بکنم که کاربران موقع خرید فقط چک باکس های هر ردیف و ستون رو انتخاب کنن وبرای اینکار به دونستن موقعیت هر چکباکس نیاز دارم
خواهش میکنم. سادست. به جای شمارشگر مکان یا نام چک باکسی که انتخاب شده است رو تو یه آرایه نگه دار. بعد ازش استفاده کن.

موفق باشی

javad_dargazi
سه شنبه 29 بهمن 1392, 09:44 صبح
ببخشید متوجه منظورتون نشدم . آخه تعداد چک باکس ها خیلی زیاده و نمیشه تک تک اونا رو با شرط if چک کنم و نتیجه رو بریزم تو آرایه..اگه امکانش هست یکم بیشتر راهنمائیم کنید.سپاس

aminaltavista
سه شنبه 29 بهمن 1392, 17:58 عصر
ببخشید متوجه منظورتون نشدم . آخه تعداد چک باکس ها خیلی زیاده و نمیشه تک تک اونا رو با شرط if چک کنم و نتیجه رو بریزم تو آرایه..اگه امکانش هست یکم بیشتر راهنمائیم کنید.سپاس

منظورم همون مثالی بود که برات فرستادم.

ببین جیگر من نمیدونم شما چه جوری چیدمانتون هست اما با یه حلقه تو جدولت یا چک باکسات پیمایش کن و شرطی توش بزار که هر کدومش انتخاب شده بود موقعیتش رو تو یه آرایه نگه دار میخوای اصلا تو لیست پیوندی نگه دار (مدیریتش بهتره). بعد از انجام این کار هر کاری میخوای سرشون دربیار(خاصیت آرایه همینه دیگه)

kohyar
سه شنبه 29 بهمن 1392, 23:38 عصر
دوست عزيز بزار يكبار واست از اول توضيح بدم
- شما فقط نياز داري يك كامپوننت چك باكس روي فرم بزاري و بعد از طريق ديتابيس اونو پر كني
با اينكار نام چك باكست يكي هستش و فقط ايندكس هاي اون افزايش پيدا ميكنه
ببين من الان با كد زير يك چك باكس رو فرم ايجاد ميكنم

<asp:CheckBoxList ID="Chkpages" runat="server" RepeatColumns="3" RepeatDirection="Horizontal">
</asp:CheckBoxList>
حالا بايد از طريق ديتابيس اين چك باكس رو پركني كه روش كار بدين صورت هست كه نتيجه واكشي اطلاعات از ديتابيس رو تو يك ديتا تيبل ميريزي و چك باكس رو به اون وصل ميكني

public void FillChkpages()
{
tblpage cs = new tblpage();
DataTable tbl = new DataTable();
tbl = cs.selectall();
checkbox1.DataTextField = "pdescrption";
checkbox1.DataValueField = "ID";
checkbox1.DataSource = tbl;
checkbox1.DataBind();
}
با كد زير هم ميتوني چك كني كه كدوم آيتم هاي چك باكس تيك خورده و انتخاب شده اند. كه اينكار رو از طريق ايندكس آيتم هيا چك باكس انجام ميدي

string st = "";
for (int counter = 0; counter < checkbox1.Items.Count; counter++)
{
if (checkbox1.Items[counter].Selected)
{
st = st + checkbox1.Items[counter].Value.ToString() + ",";
}
}
if (st.Length > 0)
{
cs.Pageid = st.Remove(st.Length - 1, 1);
}
else
{
cs.Pageid = "";
}
بازم مشكل داشتي يك ايميل به من بزن تا واست نمونه پروژه ارسال كنم
manager@netsazeh.com
از دوستان هم دلخور نباش. حتماً سرشون شلوغ هستش