以编程方式加载用户控件 [英] Programmatically load User Control
问题描述
我尝试从程序中加载用户控件-但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行
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?
(我找不到对错误消息中的参数"basepath".)
your help is very much appreciated
Beat
Beat
推荐答案
尝试提供完整路径与相对路径在MyPath变量中...
Try supplying the complete path vs relative in the MyPath variable...
这篇关于以编程方式加载用户控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!