问题标签 [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 回答
249 浏览

.net - 复合控件中的面板忽略可见性

我正在构建一个复合控件,它根据指定的状态在页面上呈现 HTML。

如果我设置控件,并将其添加到ControlCollection组合中,并在设置过程中设置控件的可见性,false它似乎工作正常,则面板会隐藏,直到页面上的回发导致面板显示。

但是,当我在方法中包装一个RenderBeginTag(writer)and时,它似乎在初始化期间忽略了“”语句?RenderEndTag(writer)Rendervisible = false

这基本上仍然显示面板,不管初始化期间的可见性检查。我已经测试了各种不同的场景,出于某种原因,这个只是忽略了状态。有任何想法吗?

谢谢,

埃里克

0 投票
2 回答
189 浏览

c# - CMS 内容编辑器/查看器

我们的一位用户决定他们需要能够在我们的主网站上编辑部分内容,我被赋予了实施它的任务。底层模型是页面中的一个或多个 div 将从 CMS 填充其内容。

为了交付内容,我使用观察者模型来交付内容,这很好用。该页面包含(至少)3个服务器控件;数据提供者(CMS)、控制器(主体)和容器(观察者)。该容器将包含两个内容面板(编辑或视图)之一,这些面板将使用从控制器推送的数据适当地呈现在屏幕上。

但是,现在我需要能够在编辑器和查看器面板之间切换(以便可以预览更改)并能够将编辑的内容发布到数据提供者 (CMS),但我在回发时一直丢失编辑的内容。我试图覆盖“SaveViewState”方法,但是因为内容面板是在预渲染期间创建的(因为它取决于 ViewState 属性),所以控件集合总是显示之前创建的对象(即当编辑面板是显示时,控件集合中的对象是预览面板)。

我不想为了性能问题而同时渲染两个控件。我正在考虑创建一个第三组件(可能是一个隐藏字段)来存储编辑后的文本,但希望这里的某个人可能对如何构建它有更好的了解?

0 投票
1 回答
439 浏览

c# - CompositeControl 中的数据绑定控件

我创建了一个 CompositeControl,它本质上是 MultiView 的包装器,但是如果我尝试在视图中使用任何数据绑定控件,例如 GridView 或 FormView,我会收到错误消息:

我已将课程精简到最低限度,但我仍然收到错误消息。该类如下所示:

标记如下:

如果我将 FormView 移到 CompositeControl 之外,它的数据绑定没有问题。此外,如果我使用标准的 MultiView,它也可以正常工作。

有任何想法吗?在此先感谢(第一篇文章,如果我错过了任何信息,请致歉)

编辑:为了让事情变得更加奇怪,如果我将 FormView 提取到单独的 ascx UserControl 并将其放入 View 中,它就可以工作!

0 投票
1 回答
76 浏览

user-controls - 复合控件 - 用户控件 - 不同的方法

我看过这段代码来创建一个登录控件,我想我们可以使用 .ascx 文件来创建这个控件,而不是编写这段代码。有人可以解释这两种方法的区别。谢谢。来源:http://www.joe-stevens.com/2010/04/16/creating-a-composite-server-control-with-asp-net/

0 投票
1 回答
886 浏览

asp.net - 从复合 Web 控件内的控件回发

假设我们有一个带有组合框和文本框的复合 Web 控件。是否可以内置到控件功能中,以便当文本框中的文本更改时,它会回发并将值作为选项添加到组合框中?

我知道我可以在文本框中添加一个“onchange”处理程序并使用 Javascript 进行一些处理,但这并不是我真正想要做的。有没有办法像这样:

在 web 控件代码中,它连接到文本框的 TextChanged 事件?

0 投票
1 回答
417 浏览

asp.net - 不能在复合控件中导致客户端验证

我有一个自定义复合控件,其中包含一个文本框、一些验证器以及几个 UI 组件。我根本无法让客户端验证正常工作。回发后服务器端验证工作正常。我最终计划通过连接到验证 API 在验证失败时将自定义 CSS 添加到 TextBox,但我什至无法运行客户端验证。

由于该控件是通用的,因此验证器不是从复合控件本身内部生成的,而是从外部传入的,如下所示。

我指定了 persistchildren 属性(我相信是正确的),因此验证器实际上已添加到 Validators 属性中。这似乎也可以正常工作。

我有一个派生控件,它将标准 TextBox 指定为 TControl 并公开一个文本属性,但这实际上是派生类型所做的所有事情。复合控件依赖于 CreateChildControls 方法来构建控件并配置验证器。这似乎在生命周期中应该是合适的,因为我已经看到了在 CreateChildControls 方法中创建验证器的复合控件的示例。

再次,服务器端验证发生得很好。javascript 中的 Page_Validators 集合不包含我的验证器。我添加到我无法控制的标记中的任何验证器都可以正常显示在 javascript 集合中并且可以正常工作。

我究竟做错了什么?

0 投票
2 回答
347 浏览

asp.net - asp.net webforms - 与页面控件交互的复合控件

我正在 c# asp.net 中编写一个复合控件作为实验,并希望我的复合控件的所有实例与一个外部控件交互。这可能吗?

我尝试过的事情:

选项1:从控件内部检查页面上是否存在外部控件,如果不存在则添加

选项 2:在设计时将目标控件的 id 传递给复合控件,然后使用 this.Page.FindControl()

显然,它会这么简单是一厢情愿:)

如果我尝试从 CreateChildControls 方法中执行此操作,this.Page.FindControl(target control) 始终返回 null。如果我尝试在此方法中将控件添加到页面,则会引发异常:

“在 DataBind、Init、Load、PreRender 或 Unload 阶段不能修改控件集合。”

是否有另一种方法/事件可以实现这一目标?

0 投票
1 回答
515 浏览

gwt - 带有 CompositeCell 的 GWT CellBrowser

我正在尝试构建一个 CellBrowser,如下所示。

问题是,我无法获得上述代码中给出的标题(数学科学)。标题来自不同的对象,我的 CompositeCell(CheckBox 和 TextCell)似乎期待/适用于所有项目。

基本上,我正在尝试在 CellBrowser 中构建列表,其中一些具有(CheckBox 和 TextCell),而其中一些只有(TextCell)。

请指教。

0 投票
1 回答
199 浏览

c# - 复合控件 JQuery 和被编码的撇号

我遇到了复合子控件将字符串编码为 HTML 的问题。我有一个设置如下的子控制按钮:

问题是当复合控件呈现到源显示的网页时:

显然我不想要',我想要撇号',我似乎没有尝试任何工作,它总是编码出来。这是使一些基本的 jquery 功能正常工作所必需的。任何解决方法?

0 投票
1 回答
267 浏览

c# - 在复合控件之间传递值

我有一个控件:定义按钮的复合控件。在使控件可见之前,该按钮调用一个 Command 事件并设置另一个控件的属性的值。

这两个控件都是事先在容器控件中实例化的。我需要在 CreateChildControls() 方法中获取第二种形式的属性值,但是,这是不可能的,为什么?

设想:

步骤个人:

最后,这就是我的问题所在,StepFinancial 控制

我已经尝试将值添加到 StateBag,没有。我尝试在 CommandEventHanlder 中添加一个 QueryString,但得到一个集合被锁定的错误消息。我尝试了缓存和会话(会话不起作用,因为这将被部署到 SharePoint),所以这是不可能的。我试过谷歌搜索,Bing'ing 甚至 Yahoo! 这但没有运气。

更新 我没有提到,我无法将控件添加到 OnPreRender 下的集合中,因为它不会连接任何事件。我也不能使用 EnsureChildControls,因为它搞砸了应用程序的其他部分。但是,我可以将这个级别的属性值添加到状态包中,但我觉得这是一种非常糟糕的方式。