PDA

View Full Version : مدیریت کنترل های پویا



iekrang
چهارشنبه 13 اردیبهشت 1385, 09:01 صبح
من یک سری چک باکس رو توی کد ساختم.
* حالا چطور میتونم چک خوردن اون چک باکس ها رو چک کنم؟
* و کلاً با چه شرطی میتونم چک کنم که آیا اون چک باکس وجود داره یا نه؟
(ببخشید ممکنه سوالم تکراری باشه،ولی من جوابم رو پیدا نکردم)

Farhad.B.S
چهارشنبه 13 اردیبهشت 1385, 10:44 صبح
چک باکس ها با یک ID منحصر به فرد ساخته میشن ، بنابراین با استفاده از متد FindControl میشه به اونها دسترسی داشت و وجود یا عدم وجودشون رو نیز چک کرد.

همچنین در اینگونه موارد بهتره کنترل های داینامیک رو در یک شئ Container مشخص مثلا یک پنل قرار بدید.
دراین صورت میتونید به راحتی متوجه بشید کنترل های اضافه شده دقیقا در کجا قرار دارند.

iekrang
چهارشنبه 13 اردیبهشت 1385, 11:27 صبح
من در ابتدا چک باکس ها رو توی یه حلقه ساختم و به یه تیبل اضافه کردم:


for( int i=1;i<=count;i++)
{
tbl.InnerHtml += "<tr><td><input type=\"checkbox\" name=\"C"+i+"\" value=\"ON\" runat=\"server\"></td></tr>";

}

حالا نمیتونم مقداشون رو پیدا کنم!
این کد رو استفاده کردم:


for( int i=1;i<=count;i++)
{
CheckBox ch = (CheckBox) tbl.FindControl("c"+i);
if (ch.Checked)
Label1.Text += "c"+i;

ممنون میشم اگر من رو راهنمایی کنید.

keramatiabi
چهارشنبه 13 اردیبهشت 1385, 13:38 عصر
for( int i=1;i<=count;i++)
{
tbl.InnerHtml += "<tr><td><input type=\"checkbox\" name=\"C"+i+"\" id=\"d"+i+"\" value=\"ON\" runat=\"server\"></td></tr>";

}
احتمالا مشکل را حل می کنه

Behrouz_Rad
چهارشنبه 13 اردیبهشت 1385, 13:53 عصر
کدی که برای اضافه کردن چک باکس ها نوشته اید، به عنوان یک کد HTML ساده در نظر گرفته خواهد شد و بنابراین، خاصیت runat="server" نیز به عنوان یک عبارت رشته ای به خروجی پاس داده می شود!
از کامپوننت CheckBox ای اس پی دات نت استفاده کنید.
در صورتی که نیاز به جدول برای قرار دادن CheckBox ها تولیدی در آن دارید، نیاز به استفاده از کلاس های Table، TableCell و TableRow خواهید داشت.

موفق باشید.

iekrang
دوشنبه 01 خرداد 1385, 10:35 صبح
کدی که برای اضافه کردن چک باکس ها نوشته اید، به عنوان یک کد HTML ساده در نظر گرفته خواهد شد و بنابراین، خاصیت runat="server" نیز به عنوان یک عبارت رشته ای به خروجی پاس داده می شود!
از کامپوننت CheckBox ای اس پی دات نت استفاده کنید.

خب.من کدم رو اینطوری تغییر دادم:


for( int i=1;i<=count;i++)
{
CheckBox ch = new CheckBox();
ch.ID = "C"+i;
listPanel.Controls.Add(ch);
}

و اینطوری چک میکنم:


for( int i=1;i<=count;i++)
{
CheckBox ch = (CheckBox) listPanel.FindControl("C"+i);
if (ch.Checked)
// some code
}


ولی هنوز با گرفتن مقدار چک باکس هام مشکل دارم و چک باکس ها رو نمیشناسه!
کسی میتونه کمک کنه؟آیا کدهام جایی مشکل دارند؟
ممنون میشم اگر راهنماییم کنید.