怎么动态的改变对用户控件的引用

如何动态的改变对用户控件的引用?
我使用了一个用户控件,在源视图中的代码为:
<uc1:navagWM   ID= "NavagWM1 "   runat= "server "   />

为能够动态改变对该处不同控件的引用,我做了如下操作:
1、在后台代码中声明public   string     navag   =   " ";
      并在Page_Load中对其赋值:                         navag   =   " <uc1:navagWM   ID=\ "NavagWM1\ "   runat=\ "server\ "   /> ";

2、将源视图中 <uc1:navagWM   ID= "NavagWM1 "   runat= "server "   /> 注释掉,再在其位置上加 <%   =navag   %>

但运行后,控件没有显示出来,使用文本框显示navag的值,与 <uc1:navagWM   ID= "NavagWM1 "   runat= "server "   /> 完全一样,为什么会不显示呢?

难道是在源视图中显示的代码不能为字符串形式,而是有特殊格式吗?


------解决方案--------------------
http://dannyr.cnblogs.com/archive/2004/10/13/51530.aspx
------解决方案--------------------
你没有考虑的页面的生命周期
控件的创建过程是在什么时候发生的?

------解决方案--------------------
请使用 Page.LoadControl 方法动态加载用户控件

// some.aspx
<asp:panel id=Panel1 runat=server />

// some.aspx.cs
... Page_Load( ...
{
MyUserControl uc = Page.LoadControl(.ascx文件所在的路径) as MyUserControl; // MyUserControl 表示你的用户控件的类名
Panel1.Controls.Add(uc);
}
------解决方案--------------------
http://msdn2.microsoft.com/zh-cn/library/System.Web.UI.Page.LoadControl(VS.90).aspx