PDA

View Full Version : کار با کنترل های ایجاد شده در زمان اجرا



داش اکل
سه شنبه 12 اسفند 1382, 09:31 صبح
من چندین کنترل checkbox بصورت زیر در زمان اجرا ایجاد کرده ام
response.write("<input type=checkbox value=1 id=chk"(
حالا می خوام بدونم چطور می تونم در زمان اجرا به کنترل هایی که اینطوری ایجاد شده دسترسی داشته باشم وبررسی کنم تیک خورده اند یا نه؟؟؟؟

Farhad.B.S
سه شنبه 12 اسفند 1382, 15:59 عصر
به جای این کار میتونید از کنترل های سمت سرور به صورت دینامیک استفاده کنید, در این صورت کنترل اونها هم ساده تر خواهد بود . به این ترتیب که یه آرایه از چک باکس ها بسازید و بعد روی اونها حرکت کنید :


Dim CheckArray() As CheckBox
Dim i As Integer

ReDim CheckArray(10)

For i = 0 To 10
CheckArray(i) = New CheckBox()
CheckArray(i).Text = "Checkbox " & i.ToString
Me.Controls.Add(CheckArray(i))
Next i


و برای بدست آوردن وضعیت چک باکس ها :



Dim Chk As CheckBox
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is CheckBox Then
Response.Write(CType(Ctrl, CheckBox).Text & " : " & CType(Ctrl, CheckBox).Checked())
End If
Next

gh_fereydonpoor
پنج شنبه 21 اسفند 1382, 18:50 عصر
سلام دوستان
آقا این کنترل HTML Control حالا چطوری میشه یه Server Control رو زمان RunTime به WebFormemon اضافه کرد .
من تو VB.Net این کارو کردم عالی ولی اینجا جواب نمیده.
ممنون مرسی
یا علی.

Farhad.B.S
پنج شنبه 21 اسفند 1382, 19:14 عصر
دوست عزیز ، اینهایی رو که من نوشتم طریقه تولید کنترل های سمت سرور به صورت دینامیک بود ،
فکر میکنم مشکلت از اینجا باشه :


Me.Controls.Add(CheckArray(i))

gh_fereydonpoor
جمعه 22 اسفند 1382, 09:09 صبح
مهندس دقیقا من هم همین مشکل رو دارم که Error میده و میگه که باید حتما RunAtServer باشه
مرسی ممنون
یا علی.

Farhad.B.S
جمعه 22 اسفند 1382, 17:06 عصر
احتمالا توی رویداد Page_Load از این کد استفاده کردید !
برای انعطاف بیشتر میتونید یه پنل به وب فرمتون اضافه کرده و کنترل های رو به این پنل اضافه کنید :


Panel1.Controls.Add(CheckArray(1))

gh_fereydonpoor
شنبه 23 اسفند 1382, 09:19 صبح
ok
من به این فکر نکرده بودم که یه Panel بزارم
ایده خوبی برم تستش کنم.
ببینم مگه نمیشه تو load گذاشتتش ؟
پی باید کجا بنویسیش؟
مرسی
یا علی.

Farhad.B.S
شنبه 23 اسفند 1382, 14:40 عصر
چرا ، تو لود هم میشه گذاشت . اما دلیل اون خطا اینه که کنترل مورد نظر شما به عنوان اولین کنترل روی وب فرم (قبل از هدر صفحه و تگ فرم) قرار میگیره و این خطا بوجود میاد.
برای این کار هم ، یه راهش اینه که کترل مورد نظر رو به یه پنل (یا هر شی کانتاینر دیگه) اضافه کنید یا این که کترل مورد نظر رو در محل دیگه ای از فرم قرار بدید :


Me.Controls(0).Add(YourControl)

gh_fereydonpoor
شنبه 23 اسفند 1382, 21:56 عصر
Ok ممنون مرسی از راهنمایی شما
آره اونجوریشو امتحان کردم
مرسی
یا علی.

مهدی فهمیده غلامی
دوشنبه 25 اسفند 1382, 00:17 صبح
ریس کدت را به c# بنویس! من منتظرم! ممنون