以编程方式加载用户控件 [英] Programmatically load User Control

查看:68
本文介绍了以编程方式加载用户控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试从程序中加载用户控件-但id不起作用!

I try to load a User Control from a program - but id does not work!

I can load the same user control when declaring it on a page. But I would like to load a choice of controls dynamically.

Here is the Code:

尝试

Try

  将MyPath设置为String =〜/n/UC/login1.ascx"

  Dim MyPath As String = "~/n/UC/login1.ascx"

  将MyLoginUC用作新的UserControl

  Dim MyLoginUC As New UserControl

  MyLoginUC.LoadControl(MyPath)

  MyLoginUC.LoadControl(MyPath)

  Me.LabContent1.Controls.Add(MyLoginUC)

  Me.LabContent1.Controls.Add(MyLoginUC)

赶快例外地捕获

Catch ex As Exception

  Trace.IsEnabled = True

  Trace.IsEnabled = True

  Trace.Warn(",加载登录控件"& ex.ToString)

  Trace.Warn("", "Error loading Login-Control " & ex.ToString)

尝试结束

End Try

它会产生错误:

It produces an Error:

加载Login-Control System时出错.ArgumentNullException:值不能为null.

 Error loading Login-Control System.ArgumentNullException: Value cannot be null.

Parameter name: basepath

  在System.Web.Util.UrlPath.Combine(字符串appPath,字符串基本路径,相对字符串)

  at System.Web.Util.UrlPath.Combine(String appPath, String basepath, String relative)

  在System.Web.UI.TemplateControl.LoadControl(String virtualPath)

  at System.Web.UI.TemplateControl.LoadControl(String virtualPath)

  在D:\ Dat \ dev \ IGNet20 \ www \ IGNet1 \ n \ u.aspx:第118行 中的ASP.u_aspx.Page_Load(Object sender,EventArgs e)

  at ASP.u_aspx.Page_Load(Object sender, EventArgs e) in D:\Dat\dev\IGNet20\www\IGNet1\n\u.aspx:line 118

做什么我做错了吗?

What do I do wrong?


your help is very much appreciated

Beat

Beat

推荐答案

尝试提供完整路径与相对路径在MyPath变量中...
Try supplying the complete path vs relative in the MyPath variable...


这篇关于以编程方式加载用户控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆