继续问!!关于动态加载用户控件(控件的类也是动态的--涉及到反射),可以加载用户控件的方法属性了,但是在调用属性方法时候,用户控件中的控件没有加载!!!!
UserControl myControl = (UserControl)LoadControl(controlName);
// 获取类型
Type tp = tempContainer.GetType();// 创建实例
Object obj = tp.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null,null);
//设置属性值tp.InvokeMember("RecordId",BindingFlags.SetProperty,null,obj,new string[]{father});
//调用没有返回值的方法
tp.InvokeMember("GetRecordData",BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance , null , obj ,null);
tp.InvokeMember("SetRecordState",BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance , null , obj , new object[]{0});
我想是由于没有执行用户的OnInit事件
所以对于用户控件的里面的控件没有加载
该怎么解决咧?
UserControl myControl = (UserControl)LoadControl(controlName);
// 获取类型
Type tp = tempContainer.GetType();// 创建实例
Object obj = tp.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null,null);
//设置属性值tp.InvokeMember("RecordId",BindingFlags.SetProperty,null,obj,new string[]{father});
//调用没有返回值的方法
tp.InvokeMember("GetRecordData",BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance , null , obj ,null);
tp.InvokeMember("SetRecordState",BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance , null , obj , new object[]{0});
我想是由于没有执行用户的OnInit事件
所以对于用户控件的里面的控件没有加载
该怎么解决咧?
解决方案 »
- .net
- DataSet.Tables[0].Select("Title='abc'").GroupBy(...) 怎么使用?
- 在哪设置vs2008使用framework 2.0进行开发啊?
- 网站首页设计布局
- 问一个ASP的时间删除的问题?能把代码写出来?
- 网站自己突出出现问题,请大家帮忙看看是哪出错了?
- 求教关于asp.net2.0中treeview控件在模式窗口下的问题!
- 我想写一个web控件,从button继承,borderstyle=solid,borderwidth=1px,哪里错了?
- 如何知道页面的控件结构,
- 求一段asp.net+ajax上传文件的代码
- 请教使用XML的解决方案
- 为什么需要点击两次才能postback 到服务器?
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
// 获取类型
Type tp = tempContainer.GetType();myControl与 tempContainer是什么关系,这些编码是在哪里执行的?你将 myControl 加到Page.Controls里去了么?UserControl myControl = (UserControl)LoadControl(controlName);
form1.Controls.Add(myControl);//try to do something else
{
OnPreInit(e); base.OnInit (e); OnInitComplete(e);
}明白该怎么做了吧,提前实现ASP.NET 2.0的事件模型。。
tempContainer是个PlaceHolder ,放用户控件的
tempContainer.Controls.Add(myControl);---(我没有贴这句话)这些编码是在哪里执行的?
这些代码是在调用动态用户控件的那个页面的load事件里面写的你将 myControl 加到Page.Controls里去了么?
我是放到了tempContainer里面了,它应该加载了啊不知道是哪里不对,我现在是可以调用这个动态的控件了,但是它提示用户控件里面的调用的普通控件提示“未将对象引用设置到对象的实例。”