原意: 使一个页面可以在不同的情况下,加载不同的用户控件,以达到重用的目的。 步骤: 1.在aspx页面上,拖入一个容器,我一般使用PlaceHolder,这个容器有个好处,在前台不增加任何多余标签(代码),Panel就不行,它会在前台添加div标签,破坏页面布局,给前台造成不必要的麻烦。 <asp:PlaceHolder ID="LeftMenu" runat="server"></asp:PlaceHolder> 2.在.cs文件里,合适的位置添加加载代码: if (typesid == 1) { [color=red]LeftMenu.Controls.Add(LoadControl("controls/about.ascx")); [/color] } else if (typesid == 2) { LeftMenu.Controls.Add(LoadControl("controls/business.ascx")); } else { [color=blue]food uc = (food)Page.LoadControl("controls/food.ascx"); LeftMenu.Controls.Add(uc); uc.TypesId = typesid;[/color] } 看到上面的代码,你就明白了,动态加载代码,我使用了两种方法。 蓝色的部分,是可以对动态控件里的属性进行赋值的。[color=black]food 是用户控件的class类名[/color] 网上很多人说,对用户控件里的服务器控件进行赋值,我觉得没有必要,写成属性,岂不是更好? public int TypesId { set { types.Text= value; } } 上面的代码是入门级的,高手就表看啦。呵呵
注:aspx页面中要注册一下 用户控件