تور لحظه آخری
امروز : شنبه ، 2 فروردین 1404    احادیث و روایات:  امام علی (ع):دين را پناهگاه و عدالت را اسلحه خود قرار ده تا از هر بدى نجات پيدا كنى و بر هر دشم...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

خرید پرینتر سه بعدی

سایبان ماشین

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

بانک کتاب

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

قیمت فرش

خرید بلیط هواپیما

بلیط اتوبوس پایانه

خرید از چین

خرید از چین

خرید محصولات فوراور

خرید سرور اچ پی ماهان شبکه

خودارزیابی چیست

رزرو هتل خارجی

تولید کننده تخت زیبایی

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

کلینیک دندانپزشکی سعادت آباد

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

تعمیر سرووموتور

تحصیل پزشکی در چین

مجله سلامت و پزشکی

تریلی چادری

خرید یوسی

مهاجرت به استرالیا

ایونا

تعمیرگاه هیوندای

کاشت ابرو با خواب طبیعی

هدایای تبلیغاتی

خرید عسل

صندوق سهامی

تزریق ژل

خرید زعفران مرغوب

تحصیل آنلاین آمریکا

سوالات آیین نامه

سمپاشی سوسک فاضلاب

بهترین دکتر پروتز سینه در تهران

صندلی گیمینگ

سررسید 1404

تقویم رومیزی 1404

ویزای توریستی ژاپن

قفسه فروشگاهی

چراغ خطی

ابزارهای هوش مصنوعی

آموزش مکالمه عربی

اینتیتر

استابلایزر

خرید لباس

7 little words daily answers

7 little words daily answers

7 little words daily answers

گوشی موبایل اقساطی

ماساژور تفنگی

قیمت ساندویچ پانل

مجوز آژانس مسافرتی

پنجره دوجداره

خرید رنگ نمای ساختمان

ناب مووی

خرید عطر

قرص اسلیم پلاس

nyt mini crossword answers

مشاوره تبلیغاتی رایگان

دانلود فیلم

قیمت ایکس باکس

نمایندگی دوو تهران

مهد کودک

پخش زنده شبکه ورزش

 






آمار وبسایت

 تعداد کل بازدیدها : 1867145341




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

كنترل های پويا در asp.net


واضح آرشیو وب فارسی:فان پاتوق: كنترل های پويا در ASP.NET ( بخش اول )


كنترل های سرويس دهنده معمولا" در زمان طراحی و با توجه به نياز يك برنامه در صفحات ASP.NET قرار می گيرند . در چنين مواردی ، پياده كنندگان در زمان طراحی نسبت به تعداد و نوع كنترل های سرويس دهنده مورد نياز آگاهی كامل دارند . به عبارت ديگر ، دانش لازم برای استفاده از كنترل ها در زمان طراحی وجود دارد . در برخی موارد ممكن است دانش لازم به منظور استفاده از كنترل ها ( نوع و يا تعداد كنترل مورد نياز ) در زمان طراحی وجود نداشته باشد . اين وضعيت در مواردی كه اطلاعات صفحه از طريق منابع داده خارجی تامين می گردد ، بسيار مشهود می باشد .
به عنوان نمونه ، فرض كنيد می خواهيم دكمه هائی را بر روی يك فرم وب توليد نمائيم كه با كليك بر روی هر از آنها ، كتاب های موجود در بانك اطلاعاتی مرتبط با آن گروه خاص ، نمايش داده شوند . تعداد button مورد نياز به تعداد گروه های تعريف شده در بانك اطلاعاتی ، بستگی خواهد داشت . با اين كه در زمان طراحی ممكن است شش گروه كتاب در بانك اطلاعاتی وجود داشته باشد ، ولی ممكن است متناسب با رشد اطلاعات در بانك ، گروه های جديدی تعريف و يا برخی گروه ها حذف گردند . در چنين مواردی ، تعداد button ايجاد شده بر روی فرم متاثر از تعداد گروه های تعريف شده در بانك اطلاعاتی است . بديهی است تا زمانی كه به بانك اطلاعاتی دستيابی نشده باشد نمی توان به اطلاعات مورد نياز جهت ايجاد buttons دستيابی داشت . به عبارت ديگر ، هدف ايجاد buttons در زمان اجراء است نه در زمان طراحی . در چنين مواردی ، كنترل ها به صورت پويا و در زمان استقرار صفحه در حافظه ايجاد خواهند شد .

ايجاد كنترل ها با استفاده از اسكريپت
برای ايجاد يك كنترل با استفاده از اسكريپت در ابتدا می بايست يك شی كنترل را به عنوان يك نوع كنترل تعريف نمود . نوع كنترل را می توان يكی از نوع های استاندارد كنترل های سرويس دهنده در نظر گرفت . مثلا" برای يك ايجاد يك كنترل ، می بايست آن را به عنوان يك نوع label ، برای ايجاد يك كنترل ، آن را به عنوان يك نوع button و برای ايجاد يك كنترل آن را به عنوان يك نوع TextBox تعريف كرد .
كد زير نحوه تعريف يك كنترل را نشان می دهد :

کد:
Dim MyLabel As New Label
Dim MyButton As New Button
Dim MyTextBox As New TextBox

كنترل
پس از ايجاد يك كنترل ، به منظور نمايش آن بر روی صفحه می بايست آن را به يكی از مجموعه های Controls اضافه نمود . صفحه، دارای يك مجموعه كنترل با نام page.collection است كه تمامی كنترل های موجود در يك صفحه و ساير كنترل های جديدی را كه در ادامه می توان به اضافه نمود را شامل می شود . معمولا" ترجيح داده می شود كه يك ناحيه خاص بر روی صفحه تعريف و در ادامه كنترل های جديدی را به آن اضافه نمود .
كنترل ، ناحيه ای را مشخص می نمايد كه می توان كنترل های ايجاد شده به صورت پويا را در آن قرار داد . با نسبت دادن يك كنترل به مجموعه كنترل PlaceHolder ، امكان مشاهده كنترل بر روی صفحه فراهم می گردد .
كد زير نحوه ايجاد يك كنترل PlaceHolder را نشان می دهد .

کد:

كنترل PlaceHolder خود فضائی را بر روی صفحه اشغال نخواهد كرد و صرفا" ناحيه ای را بر روی صفحه به منظور افزودن كنترل های پويا ، رزو می نمايد . به كنترل فوق می بايست يك id نسبت داده شود تا امكان دستيابی به آْن از طريق اسكريپت فراهم گردد .

اضافه كردن كنترل به يك PlaceHolder
پس از تعريف يك PlaceHolder ، با استفاده از متد Add می توان كنترل مورد نظر را به آن اضافه نمود . كد زير نحوه استفاده از متد Add كنترل PlaceHolder را نشان می دهد .

کد:
PlaceholderId.Controls.Add(Control)


PlaceHolderId ، شناسه ( id ) كنترل PlaceHolder است كه از طريق آن می توان به كنترل دستيابی داشت. Control ، نام كنترلی كه می بايست به صورت پويا به صفحه اضافه گردد .
در مثال زير ، يك PlaceHolder تعريف و در ادامه يك كنترل label جديد ايجاد و به PlaceHolder اضافه شده است .









كنترل label بر روی صفحه و در مكان مشخص شده توسط PlaceHolder نمايش داده می شود . در ادامه می توان كنترل های ديگری را با استفاده از اسكريپت توليد و به PlaceHolder اضافه نمود ( در خطوط بعد از كنترل label نمايش داده می شوند ) . در صورت نياز می توان چندين كنترل PlaceHolder را تعريف و در مكان های مختلف صفحه مستقر نمود تا در ادامه بتوان كنترل های توليد شده توسط اسكريپت را در هر يك از آنها با توجه به ضرورت های موجود ، اضافه نمود .
با توجه به اين واقعيت كه كنترل های توليد شده توسط اسكريپت به عنوان بخشی از view state صفحه در نظر گرفته نخواهند شد ، می بايست برای ايجاد آنها از روتين Page_load استفاده گردد .

دستيابی به خصلت های يك كنترل توسط اسكريپت
در مثال قبل ، كنترل label به صورت پيكربندی پيش فرض و بدون هيچگونه تنظميات خاصی بر روی صفحه نمايش داده می شود . در صورت تمايل می توان خصلت های مرتبط با يك كنترل را به صورت پويا و به كمك اسكريپت مقداردهی نمود .
كد زير ، بازنويسی مثال قبلی است كه در ابتدا خصلت های متعدد كنترل label مقداردهی و در ادامه كنترل فوق به مجموعه كنترل های PlaceHolder اضافه شده است .

کد:










توليد رويدادهای كنترل توسط اسكريپت
در مواردی كه كنترل هائی نظير Button كه به كمك آنها می توان اسكريپت های موجود در يك برنامه را فعال نمود به صورت پويا ايجاد می گردند ، می بايست event handler مورد نظر را به منظور فراخوانی برنامه فرعی نيز مشخص نمود . برای ايجاد يك event handler توسط اسكريپت از كد زير استفاده می گردد .

AddHandler Control.Event, AddressOf Subprogram


control ، نام كنترلی است كه event handler به آن نسبت داده خواهد شد . Event ، نوع Event handler را مشخص می نمايد ( مثلا" Click ) و Subprogram ، نام روتينی است كه پس از بروز رويداد می بايست فعال گردد .
در مثال زير ، پس از تعريف يك Buuton و تنظيم خصلت های آن در زمان اجراء ، يك event handler نيز تعريف شده است تا پس از كليك بر روی دكمه فوق ، روتين مورد نظر فعال (My_Subprogram ) و پاسخگوی رويداد ايجاد شده باشد .

کد:
Dim MyButton As New Button
MyButton.id = "Button1"
MyButton.Text = "Click Me"
AddHandler MyButton.Click, AddressOf My_Subprogram
MyPlaceHolder.Controls.Add(MyButton)

در مثال فوق ، يك handler برای رويداد Click به كنترل Button اضافه شده است . My_Subprogram ، روتينی است كه پس از بروز رويداد ( كليك بر روی button ) ، فعال و پاسخگوی رويداد ايجاد شده است .
پس از اين كه يك Button به صفحه اضافه گرديد ( در مكان MyPlaceHolder ) ، عملكرد آن مشابه زمانی است كه از يك Button در زمان طراحی استفاده شده باشد:

کد:

نوع رويداد توليد شده توسط اسكريپت كه می توان آن را به كنترل ها اضافه نمود ، همانند event handler استفاده شده به همراه كنترل ها در زمان طراحی است . مثلا" كنترل button قادر به تشخيص دو event handler با نام OnClick و OnCommand است . بنابراين ، می توان با استفاده از اسكريپت دو رويداد فوق را برای يك button توليد نمود . زمانی كه يك رويداد Command توسط اسكريپت توليد می گردد ، می توان خصلت های CommandName و CommandArgument را نيز برای button تنظيم نمود .
در بخش دوم به بررسی ساير عمليات در ارتباط با كنترل های پويا خواهيم پرداخت .






این صفحه را در گوگل محبوب کنید

[ارسال شده از: فان پاتوق]
[مشاهده در: www.funpatogh.com]
[تعداد بازديد از اين مطلب: 404]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن