问题标签 [composite-controls]

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 投票
1 回答
979 浏览

asp.net - 如何正确处理复合控件中子控件的视图状态?

我有一个包含 ListBox 子控件的复合控件。在回发时,ListBox 的项目消失。我有一个用于初始化它的 ListBox 的属性,并将它添加到 CreateChildControls 中的控件集合中。难道我做错了什么?我是否需要做其他事情才能正确处理此 ListBox 的视图状态?

0 投票
1 回答
1831 浏览

asp.net - 为什么我应该在 CompositeControl 上的 CreateChildControls() 中创建我的子控件?

好的,显而易见的答案是,因为复合控件的流程要求在某个时间点创建我的子控件。我遇到了一个问题,我认为其他人一定也遇到过。

我的控件是一个复合“容器/集合”控件。它将被提供一个对象,并基于该对象数据创建许多子控件。所以我的控件将呈现一个标题(总是)和 x 数,比如 TextBox 控件(基于它所提供的对象)。

我显然在 CreateChildControls() 中创建了我的标题,但我也无法在那里创建我的 TextBoxes,因为我不知道对象(作为 TextBoxes 的基础)是否已经被输入?我想过公开一个属性/方法来设置/提供对象,但我不确定它什么时候会被调用。

那我该怎么办?我的意思是我不可能在 CreateChildControls() 中创建文本框,或者我可以吗?我的意思是 - 什么时候调用 CreateChildControls() - 我知道我可以调用 EnsureChildControls() (我已经在一个属性中设置了标题的 innerText - 因为我需要在设置它的 innerText 之前创建标题)。

这个怎么样

如果我将文本框的构建放在 CreateChildControls() 中,那将引发错误(或充其量不会创建任何文本框)。

将 Header 存储在成员变量中会不会更明智,因此不必在设置 Header 内部文本的公开方法/属性中调用 EnsureChildControls()。我只是不太喜欢这种方法,因为它会通过添加额外的逻辑来临时存储并且稍后必须弄清楚何时设置它(可能在 PreRender 中)会使事情复杂化。

另外我想我可以制作某种数据绑定控件,确保在调用 .DataBind() 时数据存在。我真的不喜欢这个,因为上次我研究了创建数据绑定控件,它变得非常复杂。

这真的应该是一个容易解决的任务 - 我知道我在某处遗漏了一些东西......

0 投票
2 回答
4768 浏览

asp.net - 在标签上设置 AssociatedControlID 失败

我有一个复合控件,它将一个 TextBox 和一个 Label 控件添加到它的 Controls 集合中。当我尝试将标签的 AssociatedControlID 设置为文本框的 ClientID 时,我收到此错误

好的,有一点背景。我得到了这个主复合控件,它动态地将许多“元素”添加到它的控件集合中。其中一个元素恰好是这个“MatrixTextBox”,它是由一个文本框和一个标签组成的控件。

我将 Label 和 TextBox 作为受保护的类变量,并在 CreateChildControls 中初始化它们:

我尝试设置

在将控件添加到 Controls 集合之后,甚至在 PreRender 中,两者都产生相同的错误。我究竟做错了什么?

0 投票
1 回答
4713 浏览

visual-studio - 在 CompositeControl 上使用 ScriptManager 添加脚本?

我试图在友好的“ScriptManager”类上调用我的旧“RegisterClientScriptBlock”。

它对我的 CompositeControl 不起作用?我在正常的用户控件(ascx)上使用它。

如果我这样做并尝试编译,Visual Studio 根本不会接受我输入“ScriptManager”,或者我得到“当前上下文中不存在名称 'ScriptManager'”。出了什么问题 - 我确实有对 System.Web.UI 的引用,我什至得到了 resharper 来帮助我添加它(以及 using 语句)——如果它只是在那里的话。

好的,所以一些非常简单的事情和逻辑现在正在下降,我只需要知道什么......

有任何想法吗?

我得到了带有 SP1 的 Visual Studio 2008。

编辑:不起作用的 CompositeControl 实际上是一个简单的类库,而不是 ascx 文件自然是 Web 应用程序的一部分。我知道这可能会导致问题,因为我必须以某种方式设置对 Page 的引用 - 我尝试查看 ClientScriptManager 但它的构造函数是内部的,表明它是在 ScriptManager 内部的某个地方使用的 - 但它也暗示可能有一个入口来自一个类库(没有对 Page 对象的编译时引用)

0 投票
2 回答
2022 浏览

c# - 在 CompositeControl 中公开 OnSelectedIndexChanged 事件

如果我有一个DropDownList构成 CompositeControl 一部分的控件,我如何将SelectedIndexChanged事件公开给正在使用的 aspx 页面?

谢谢

0 投票
4 回答
2706 浏览

c# - 创建控件时出错 - 自定义控件

我有一个自定义控件,它工作正常……除了控件不能在设计时呈现。(我正在使用 VS 2008)

我想很多开发自定义控件的人都会遇到这个问题......我得到的错误是“创建控件时出错 - CustomControlName”对象引用未设置为对象的实例。

我想要一个解决方法。或者至少调试这个......(因为这是一个设计时问题如何调试?)

我已经在 OnInit、OnPreRender、RenderContents、CreateChildControls 方法上尝试了 if(!DesignMode) 代码(我只是在黑暗中拍摄)......

请帮忙。我真的希望这不是 VS 错误!

0 投票
2 回答
693 浏览

c# - MaskedEditValidator DisplayMoney 不显示在复合控件中

我正在创建一个具有 AJAX 功能的简单复合控件。尝试实现 MaskedEditValidator 时,DisplayMoney 属性不起作用。MaskedEdit 呈现,没有附加美元符号。有任何想法吗?这是我的代码:

0 投票
2 回答
1674 浏览

.net - 使用嵌套项构建复合控件

我的目标是创建一个看起来、行为和行为都像 RadioButtonList 的复合控件。在幕后做了一些额外的事情,这些事情没有问题。我无法完成的是使用控件所需的标记。我理想的标记如下所示:

我想做的是将<asp:ListItems> 传递给复合控件中的 RadioButtonList 并让它处理生成/运行控件所需的一切。

RadioButtonField 的控制标记

RadioButtonField背后的代码:

为了收集<asp:ListItems> 并将它们传递给 RadioButtonList,后面的 RadioButtonField 代码需要做什么?

0 投票
2 回答
1317 浏览

asp.net - 如何拥有 ASP.NET 模板化复合控件?

我正在尝试将模板添加到包含标签和文本框的简化复合控件。我希望我的标记看起来像这样:

我有一个 templateContainer 类,它具有 TextBox 和 Label 的属性。

在主 FormItem 类中,我有一个从 CreateChildControls() 调用的 CreateControlHierarchy() 方法:

我想要的是模板呈现实际控制。相反,它在控件上调用 ToString() 并显示 System.Web.UI.WebControls.Label 和 System.Web.UI.WebControls.TextBox。有没有办法让模板将控件添加到它的集合中,而不仅仅是在它们上调用 ToString() ?

注意:我还尝试将文本框和标签添加到执行相同操作的容器的控件集合中。

0 投票
1 回答
930 浏览

asp.net - 如何在 ViewState 中存储嵌套的 CompositeControl 属性

我有一个复合控件,它具有大量可用于设置控件样式的属性。我想对这些属性进行分组,但仍保留 ViewState 中的一些属性 控件的标记如下所示:
例如

我的代码看起来像这样


ViewState 无法从 GridStyle 类访问,那么我将如何维护 ViewState 中 AllowFilter 属性的状态?