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

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

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

لوله بازکنی تهران

آراد برندینگ

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

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

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

irspeedy

درج اگهی ویژه

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

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

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

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

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

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

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

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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]
[تعداد بازديد از اين مطلب: 399]

bt

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




-


گوناگون

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


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