0

我已经建立了一个自定义的 ASP.Net Web 用户控件;之前已经做过足够多次了,但是这个行为不端,我不知道为什么。

在调用页面直接在其标记中包含用户控件的情况下,一切都很好,并且控件按预期运行。

但是,如果页面动态添加此特定控件(添加到母版页中的占位符,这就是调用整个事情的原因),则其中的元素始终保持为 NULL - 用户控件中的任何内容都不会写入客户端,包括静态内容在用户控制范围内。

我可能哪里出错了?

4

4 回答 4

2

答案已排序 - ID 无关紧要,它可以不用,但如果你这样做

Control a = new Control;

它不起作用,而

Control a = (Control)Page.LoadControl("~/Folder/Control.ascx");

确实有效,这是我深夜忘记的:-)

于 2010-07-23T00:33:18.953 回答
1

当您动态加载用户控件时...

对于 ASP.NET 网站项目,以下工作

Control a = new Control;

对于 ASP.NET Web 应用程序项目,以下工作

Control a = (Control)Page.LoadControl("~/Folder/Control.ascx");
于 2012-01-04T17:44:45.203 回答
0

当您动态添加用户控件时,您必须为每个添加的控件生成唯一 ID。

例如:

Control selWebControl = (Control)Page.LoadControl("~/DL/Templates/FileLibrary.ascx");
selWebControl.ID = "UC" + "_" + dfRow.ID;
于 2010-07-01T00:56:23.643 回答
0

确保将其添加到页面上的控件集合中,并确保在页面生命周期中的正确时间执行此操作。我喜欢重写 CreateChildControls。

因此,请确保您正在执行 Page.Controls.Add(myNewControl) 或 PlaceHolder1.Controls.Add(myNewControl)。

如果您显示了动态创建控件并将其添加到页面的代码,可能会有所帮助

于 2010-07-01T05:27:40.813 回答