( تعداد نمایش : 593 )

کنترل‌های پویا

چگونگی اضافه کردن یک کنترل کاربری (User Control) در مواقع لازم با استفاده از متد LoadControl

——————————————————————————–

شما با استفاده از کنترل های ASP.net اجزاء مورد نظر برنامه وب خود را در یک صفحه وارد می کنید. این صفحات خود ممکن است تنها HTML و یا در برگیرنده کدهای net. باشند. کنترل ها بصورت ascx. ذخیره می شوند و برای استفاده از آنها بصورت زیر با صفحه aspx شما پیوند می خورند و بصورت یک tag ساده می توان آنها را به هر قسمت از صفحه اضافه کرد.

<%@ Register TagPrefix=”uc1″ TagName=”HeaderUserControl” Src=”HeaderUserControl.ascx” %>

<uc1:HeaderUserControl id=”Header1″ runat=”server”></uc1:HeaderUserControl>

و اما شاید شما بخواهید فقط در مواقعی خاص این کنترل ها load شوند. مثلا هنگام اجرای متد Page_Load و یا Button_Click ، در صورت درست بودن نام کاربری و یا به هر شکل دیگری. چاره چیست؟! خوشبختانه کتابخانه net. با متد LoadControl خود میتواند پاسخ گوی شما باشد (در ضمن این را هم فراموش نکنید که هر tag ساده html و یا کنترل سمت سرور ASP. net را با زبان برنامه نویسی net. هم می توان ایجاد کرد). فرض کنید ما کنترلی به اسم FeaturedProduct.ascx داریم. بدین صورت ابتدا بارگذاری و سپس اضافه خواهد شد:

Control FeaturedProductUserControl = LoadControl(“FeaturedProduct.ascx”);

Controls.Add(FeaturedProductUserControl);

البته اشکال این تکنیک این است کنترل دقیقا محلی که شما می خواهید اضافه شود نمایش داده نمی‌شود که خب، این هم با استفاده از place holder’s controls collection قابل حل هست. بدین شکل:

PlaceHolderLeftMenu.Controls.Add(FeaturedProductUserControl);

مطمئناً این تکنیک برای کسانی که برنامه های کاربردی تحت وب را پیاده می کنند جهت مدیریت بهتر، استفاده از صفحات کمتر، حالت های مختلف درخواست‌ها و کلاً قالب بندی CMS‌ها بسیار مفید خواهد بود، چنانچه که پروژه ای مثل IBuySpy نیز از این تکنیک بهره می‌برد.

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن