问题标签 [loadcontrol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
19721 浏览

asp.net - Asp.net Usercontrol LoadControl 问题

我在使用时遇到问题LoadControl( type, Params )。让我解释...

我有一个超级简单的用户控件(ascx)

后面有代码( c# ):

在我的 Web 应用程序的其他地方,我使用以下代码将用户控件的实例添加到页面:

我正在使用 LoadControl 的重载版本,因为我想将 Message 参数传递给构造函数。这一切似乎工作正常。

但是,当在OnPreRender()ErrorDisplay 用户控件上触发时, lblTitle 和 lblDescription 变量都是null,尽管它们具有等效的标记。消息变量已正确填充。

谁能解释为什么会发生这种情况?

谢谢

编辑:

为清楚起见,我还将添加以编程方式将用户控件添加到页面的代码正在运行以响应按钮按下,因此“托管页面”已通过 Init、Page_Load 进行,现在正在处理事件处理程序。

我无法在早期的 asp 生命周期阶段添加用户控件,因为它们是为响应按钮单击事件而创建的。

0 投票
1 回答
1012 浏览

c# - 将带有按钮的用户控件列表添加到 PlaceHolder - 没有事件?

我想使用包含多个控件元素的“复杂”用户控件。这是我将在列表中重用的同一个控件,并且我已经有一个 PlaceHolder 控件。

我可以使用LoadControl(path to .ascx)添加控件- 没问题。

我也可以通过我的自定义属性获取/设置访问嵌入的标签,因此我可以完美地初始化每个控件。

但是在添加 LinkBut​​tons 时,我遇到了麻烦/问题。

当我单击按钮时,我确实得到了呈现控件的页面的“提交”;但是控件自己的按钮事件似乎没有触发(或者至少父页面上的 PageLoad 似乎首先触发?) - 我无法弄清楚我的事件去哪里或在哪里寻找名称/ID或参数按钮。

怎么会或我在这里做错了什么?

我现在通过在 URL 中使用带有 ID 的“硬编码 A HREF”的标签制作了一个“假按钮”,但我想了解我需要捕获什么事件以及在哪里或如何初始化按钮,因为我希望能够为这些用户控件使用“默认 ASP.NET”控件(希望没有太多的拼凑编码)......

0 投票
1 回答
649 浏览

c# - 参数注入到动态创建的用户控件中,无需专门化

我想知道的是,是否有一种技术可以将参数注入到渲染中,以便在渲染期间(期间)调用其页面生命周期事件(Page_Init,Page_Load)时HttpContext可用?UserControlHttpContext.Current.Server.Execute()

这种技术将允许将数据注入任何 UserControl(例如通过调用远程服务),而无需专门用于动态渲染。它将以与 ASPX 页面上的静态控件相同的方式加载。

从这个基本代码片段开始:

我看过@ScottGu ViewManager示例,其中他向每个成员添加了一个Data 成员,UserControls并在控件呈现为HTML 之前使用反射将数据源注入该成员。

我还看到了Stefan Sedich对 @ScottGu 示例的看法,他派生了一个泛型ViewManager<Control>,它允许同样的事情,但避免了反射的需要。

例如,我希望能够在Request渲染.QueryStringUserControl

0 投票
1 回答
1642 浏览

asp.net - 动态加载控件中的 asp .net 事件 ( Telerik )

我对这些控件中的动态加载控件和事件有疑问(在我的情况下单击按钮:)

这是我得到一个 RadPanelBar 一个按钮和隐藏输入的内容:

与 PageLoad 事件相比,我检查 someHiddenField 值是否为真,如果为真,则将具有动态加载控件的新项目添加到 RadPanelBar :

testControl.ascx 中有一个按钮,但由于某种原因,动态创建控件时不会触发 onClick 事件。
很高兴听到任何建议如何解决这个问题:)

先感谢您 !

0 投票
1 回答
1840 浏览

c# - ASP.NET LoadControl 在此上下文中使用关键字“base”无效

我希望 Web 服务加载一个 .ascx 控件,在其中加载一些值,然后返回该控件的 HTML 内容。我有类似的东西:

MyCustomReport 覆盖DataBind()

该行base.DataBind()抛出 aNullReferenceException并且调试器说:

在此上下文中使用关键字“base”无效

任何帮助将不胜感激,谢谢!

0 投票
1 回答
353 浏览

.net - 是否需要在 LoadControl() 之前调用 ResolveUrl()?

是否需要TemplateControl.ResolveUrl()在传递给之前调用TemplateControl.LoadControl()

首选哪种方式?

或者也许ResolveClientUrl()

0 投票
4 回答
8810 浏览

asp.net - 在后端类中创建 Ascx 控件的实例 Aspx 页面而不加载 FilePath

问题:是否可以在后端代码中(不是在后面的代码中,而是在实际的后端类中)加载和呈现在 .aspx 或 .ascx 中定义的页面或控件,而不必使用 Load(path) 而只是创建页面/控件类的实例?

我希望能够做到这一点(来自后端类而不是背后的代码):

而不是这个

详细信息: 在 Asp.net WebApp 中,我偶尔需要将用户控件 (.ascx) 或页面 (.aspx) 呈现为 HTML 字符串。当页面或控件从后面的代码继承时,它的类在我的后端代码中以智能感知显示,我可以创建一个实例并设置属性,而不会出现编译时或运行时错误。但是,当我尝试渲染页面或控件时,我总是得到一个空字符串,并且在检查时页面或控件显示抑制的内部渲染错误,除非我使用其物理文件路径加载页面或控件。

我认为关键问题与运行时编译 .aspx / .ascx 文件的时间和方式有关。我不想创建用户控件的预编译类库,因为这会使设计过程变得尴尬,而且我真的很喜欢 .aspx / .ascx 页面提供的设计器功能,所以我很想找到一种方法来使页面在解决方案中编译,以便它们像任何其他后端类一样可用,但仍然可以使用设计器创建。我希望两全其美(1)能够在设计器中编辑页面和控件,(2)使用后端类创建实例并设置它们的属性。

0 投票
3 回答
5714 浏览

c# - LoadControl 和 Page_Load 事件未触发

大家好!我正在通过 Web 方法加载 UserControl,并使用 LoadControl 功能:

然后我执行以下操作:

问题是控件的 Page_Load 事件根本没有触发。如果我添加另一个函数,并在将控件添加到页面的 Controls 集合之前调用它,则该函数将触发,但 Page_Load 事件不会触发。

有什么想法吗,伙计们?谢谢大家!

0 投票
1 回答
1360 浏览

c# - 如何使用文件名从程序集中加载用户控件?

我们有一组符合 dll 的用户控件。我们可以使用它们的类名加载控件,就像ASP.theusercontrol_ascx blah = new ASP.theusercontrol_ascx();

但是如果我们有动态数据并根据文件名(或控件名称)加载控件,我们如何加载它们Page.LoadControl("TheURL/theusercontrol.ascx")呢?

非常感谢...

0 投票
1 回答
1334 浏览

asp.net - 使用带有对象初始化器的 LoadControl 创建属性

过去,我使用 UserControls 创建电子邮件模板,我可以在其上填充属性,然后使用 LoadControl 和 RenderControl 来获取用于我的电子邮件正文的 html。这是在 asp.net 网络表单中。

我正在构建一个 mvc 网站并想做类似的事情。我实际上已经考虑将这个功能放在一个单独的类库中,并且正在研究如何做到这一点,以便在我的 web 层中我可以调用 EmailTemplate.SubscriptionEmail() ,然后它将从我的模板生成具有相关属性的 html地方(显然那里需要有电子邮件地址等参数)。

我想创建一个单一的渲染控制方法,我可以将一个字符串传递给作为我的模板的 UserControl 的路径。我在网上遇到过这种适合我的需求:

我的问题是我的 UserControl(s) 可能有多个不同的属性。因此,SubscribeEmail 可能需要 FirstName 和 EmailAddress,而另一个电子邮件模板 UserControl(我们称之为 DummyEmail)将需要 FirstName、EmailAddress 和 DateOfBirth。

上面的方法似乎只携带了一个propertyName和propertyValue的参数。我考虑了一个字符串数组,可以将不同的属性放入其中,但后来我认为拥有一个对象初始化器会很酷,因此我可以像这样调用该方法:

那有意义吗?我只是想知道这是否可能首先以及我将如何实现它?我不确定是否可以将“对象”上设置的属性映射到加载的用户控件上的属性,以及是否可以从哪里开始执行此操作?

有没有人做过这样的事情?任何人都可以帮忙吗?

劳埃德