继续问!!关于动态加载用户控件(控件的类也是动态的--涉及到反射),可以加载用户控件的方法属性了,但是在调用属性方法时候,用户控件中的控件没有加载!!!!
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事件
所以对于用户控件的里面的控件没有加载
该怎么解决咧? 

解决方案 »

  1.   

    我想由于我这样调用方法,没有执行正常调用时候下面的这样的代码,所以用户控件里面没有加载其控件
    #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
      

  2.   

    不是很明白你的编码UserControl myControl = (UserControl)LoadControl(controlName);
    // 获取类型
    Type tp = tempContainer.GetType();myControl与 tempContainer是什么关系,这些编码是在哪里执行的?你将 myControl 加到Page.Controls里去了么?UserControl myControl = (UserControl)LoadControl(controlName);
    form1.Controls.Add(myControl);//try to do something else
      

  3.   

    protected override void OnInit(EventArgs e)
        {
          OnPreInit(e);      base.OnInit (e);      OnInitComplete(e);
        }明白该怎么做了吧,提前实现ASP.NET 2.0的事件模型。。
      

  4.   

    UP + 学习 + 接分UP + 学习 + 接分UP + 学习 + 接分
      

  5.   

    to saucer(思归) myControl与 tempContainer是什么关系?
    tempContainer是个PlaceHolder ,放用户控件的
    tempContainer.Controls.Add(myControl);---(我没有贴这句话)这些编码是在哪里执行的?
    这些代码是在调用动态用户控件的那个页面的load事件里面写的你将 myControl 加到Page.Controls里去了么?
    我是放到了tempContainer里面了,它应该加载了啊不知道是哪里不对,我现在是可以调用这个动态的控件了,但是它提示用户控件里面的调用的普通控件提示“未将对象引用设置到对象的实例。”
      

  6.   

    UP + 学习 + 接分UP + 学习 + 接分UP + 学习 + 接分