PDA

View Full Version : سوال: خواندن از طریق findcontrol



KIMIA1981
یک شنبه 22 اردیبهشت 1387, 14:04 عصر
سلام
من چطوری می تونم با findcontrol مقدار داخل کنترل داینامیک را بخونم؟
این کدم جواب منو نداده چون میگه runat=server knhvi!

textbox1.text=ctype(me.findcontrol("txtid"),textbox).text

twelve
یک شنبه 22 اردیبهشت 1387, 14:11 عصر
textbox1 چی هست ؟ کدتون رو کامل بذارید

KIMIA1981
یک شنبه 22 اردیبهشت 1387, 14:20 عصر
textbox1.text یه کنترل استاتیک روی فرممه ولی txtid رو به صورت داینامیک می سازم.


Dim txt As New TextBox
txt.ID = "txtid"
Me.Controls.Add(txt)

twelve
یک شنبه 22 اردیبهشت 1387, 15:32 عصر
Me.Controls.Add(txt)


مشکل شما اینه ، در وب فرم ها به این صورت نمیتونید کنترل به صفحه اضافه کنید ، دنگ و فنگ داره!
از کنترلهای ایجاد کننده فضا مانند div ، place holder ، table ... استفاده کنید

KIMIA1981
یک شنبه 22 اردیبهشت 1387, 16:30 عصر
دنگ و فنگ داره که داره من از placeholder ,table استفاده کردم ولی من مشکلم مقداردهی کردن کنترلهای داینامیکه که بعد از اینکه ساخته شد مقدار داخلشونو بتونم بخونم. که نمی تونم ؟!!!!

twelve
یک شنبه 22 اردیبهشت 1387, 17:49 عصر
دنگ و فنگ داره که داره من از placeholder ,table استفاده کردم ولی من مشکلم مقداردهی کردن کنترلهای داینامیکه که بعد از اینکه ساخته شد مقدار داخلشونو بتونم بخونم. که نمی تونم ؟!!!

حالا شمشیرتو غلاف کن خواهر ، راهش همینه که بهت گفتم اگر جواب نميگيری یه جایی اشتباه داری ، برای همینم گفتم که کدت رو کامل بذار ...

KIMIA1981
یک شنبه 22 اردیبهشت 1387, 18:19 عصر
1- حالا شما فرض كنيد همون 4 خط ساده بي دنگ و فنگ بود با اون ميشه مقدارشو نشون داد؟( اين سئوال من كليه ميشه يا نه؟)
2- با تعريف dim txt as new textbox يك كنترل html اي درست ميشه يا سروري چون از من ايراده runat=server مي گيره.؟

twelve
یک شنبه 22 اردیبهشت 1387, 19:38 عصر
1- بله !
2- سمت سرور ، به طور کلی حتی کنترل های html رو هم که از طریق کلاس های دات نتی ایجاد میکنید خود بخود runat=server میشن ، اما از اونجایی گفتم از Me استفاده نکن که کنترل ها و ساختار Me قبل از هر اتفاقی Initialize میشن (در Page_Init ) که یکی از اونها المنت <form runat=server> است... ولی شما بعد از احیای صفحه و در Page_Load و بعد از اتمام کار متد InitializeComponent کنترل سمت سروری رو به Me اضافه میکنید که باعث میشه کنترل ایجاد شده در خارج از تگ form با خاصیت runat=server قرار بگیره ! و شما با این خظا مواجه میشید. سازندگان ASP.NET هم به خاطر مواجه نشدن شما با این خطا کنترل های متعددی از جمله ساده ترین اونها placeholder برای این منظور در نظر گرفته اند ...

adonis
یک شنبه 22 اردیبهشت 1387, 19:52 عصر
شدنش که حتما میشه ولی هونطور که twelve گفته به صفحه اضافش نکن. چون در غیر این صورت
هموم خطایی رو می بینیکه گفتی. اگه اونطوری اضافه کردی و نشد کدت رو بذار که به احتمال شونصد درصد اینه که کنترلت توی postback به صفحه بایند نمیشه در نتیجه مقدارش میپره.

KIMIA1981
دوشنبه 23 اردیبهشت 1387, 07:56 صبح
ممنون از راهنماییهاتون
درست می گید کنترلهای من موقع posback شدن از بین می رن ! یه دیگه اینکه من تعریفهامو توی دکمه میذارم نه توی page_load برای همین شاید جواب نمی گیرم . برای حل این مشکل چیکار کنم چون من می خوام توی دکمه کنترل داینامیک درست کنم. ؟

Behrouz_Rad
دوشنبه 23 اردیبهشت 1387, 09:47 صبح
http://barnamenevis.org/forum/showthread.php?t=91389

KIMIA1981
دوشنبه 23 اردیبهشت 1387, 13:08 عصر
از توی اون لینکی که گذاشتید یه سئوال داشتم و اینکه توی


base.loadviewstate(savedstate) این savedstate چیه؟ چه جوری باید مقداردهی بشه؟