首页 > 代码库 > web页面动态加载UserControl,并调用用户控件中的方法来初始化控件
web页面动态加载UserControl,并调用用户控件中的方法来初始化控件
1,HTML页
头部注册:
<%@ Register Src="~/WorkLog/WorkLogNewV1/UserControl/CeShiBu.ascx" TagPrefix="UserControl" TagName="CeShiBu"%><%@ Register Src="~/WorkLog/WorkLogNewV1/UserControl/KaiFaBu.ascx" TagPrefix="UserControl" TagName="KaiFaBu"%>
控件摆放位置:
<div id="controlspan" runat=server> </div>
2,C#后台
/// <summary> /// 根据事项和分类决定显示用户控件中哪些要素 /// </summary> /// <param name="strFL"></param> /// <param name="strSX"></param> private void setUserControlVisible(string strFL,string strSX) { if (ViewState["rzDeptName"].ToString() == "开发部") {
//用户控件路径 UserControl KaiFaBuControl = (UserControl)Page.LoadControl("UserControl/KaiFaBu.ascx"); Type tc = KaiFaBuControl.GetType();
//用户控件中要调用的初始化方法 System.Reflection.MethodInfo m = tc.GetMethod("OnStart");
//调用初始化方法要传递的参数 object[] bjParas = new object[1]; bjParas[0] = strSX; m.Invoke(KaiFaBuControl, bjParas); controlspan.Controls.Clear(); controlspan.Controls.Add(KaiFaBuControl); } if (ViewState["rzDeptName"].ToString() == "测试部") { UserControl KaiFaBuControl = (UserControl)Page.LoadControl("UserControl/CeShiBu.ascx"); Type tc = KaiFaBuControl.GetType(); System.Reflection.MethodInfo m = tc.GetMethod("OnStart"); object[] bjParas = new object[1]; bjParas[0] = strSX; m.Invoke(KaiFaBuControl, bjParas); controlspan.Controls.Clear(); controlspan.Controls.Add(KaiFaBuControl); } }
在页面上动态改变strFL,strSX,可以动态加载不同的用户控件,或者加载用户控件中的不同元素。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。