Dot net In Blue

جمعه، تیر ۳۰، ۱۳۸۵

چطور یک یوزر کنترل را به صورت پویا به صفحه اصلی اضافه کنیم

چطور یک یوزر کنترل را به صورت پویا به صفحه اصلی اضافه کنیم .

در این مقالاله سعی دارم توضیح دهم که چطور میتوانیم یک یوزر کنترل را به صورت پویا به وب فرم اضافه کنیم . زیاد توضیح واضحات نمیدهم :

ابتدا به جایی نیاز داریم که توسط آنجا بتوانیم یوزر کنترل را در جای مناسبی قرار دهیم .

در مثال ما از یک td که به صورت runat=server است استفاده کرده ایم ، شما میتوایند از هرچیزی مثلا placeholder استفاده کنید :

<table cellpadding="0" align="center" cellspacing="0">

<tr>

<td runat="server" id="MainTD">

</td>

</tr>

</table>

برای اینکه ببنید runat=server کجا استفاده شده آن را قرمز کردم ، متوجه id این td هم باشد id="MainTD" که لازم است آن را در کد بیهایند بالا PageLoad تعریف کنید به این صورت :

protected System.Web.UI.HtmlControls.HtmlTableCell MainTD;

خوب حالا میماند اضافه کردن کنترل به صفحه :

string pageStr ;

pageStr = Request.QueryString["PageID"];

Control ctrl;

ctrl = LoadControl(pageStr + ".ascx");

MainTD.Controls.Add(ctrl);

ساده بود نه ؟؟ مثلا میخواهید کنترلی با نام Test.ascx را لود کنید کافی است کوئری استرینگ شما چیزی باشد شبیه به این

.../page.aspx?PageID=text

گاهی داده اید سایتهایی را که صفحاتشان با عوض شدن کوئری استرینگ عوض میشود ؟؟ در این سایتها چنین تکنیکی روی صفحه default پیاده شده و هر یوزر کنترل نماینده یک صفحه از سایت است ! به همین سادگی !

از دات نت به رنگ آبی لذت ببرید !