问题标签 [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.
.net - 复合控件中的面板忽略可见性
我正在构建一个复合控件,它根据指定的状态在页面上呈现 HTML。
如果我设置控件,并将其添加到ControlCollection
组合中,并在设置过程中设置控件的可见性,false
它似乎工作正常,则面板会隐藏,直到页面上的回发导致面板显示。
但是,当我在方法中包装一个RenderBeginTag(writer)
and时,它似乎在初始化期间忽略了“”语句?RenderEndTag(writer)
Render
visible = false
这基本上仍然显示面板,不管初始化期间的可见性检查。我已经测试了各种不同的场景,出于某种原因,这个只是忽略了状态。有任何想法吗?
谢谢,
埃里克
c# - CMS 内容编辑器/查看器
我们的一位用户决定他们需要能够在我们的主网站上编辑部分内容,我被赋予了实施它的任务。底层模型是页面中的一个或多个 div 将从 CMS 填充其内容。
为了交付内容,我使用观察者模型来交付内容,这很好用。该页面包含(至少)3个服务器控件;数据提供者(CMS)、控制器(主体)和容器(观察者)。该容器将包含两个内容面板(编辑或视图)之一,这些面板将使用从控制器推送的数据适当地呈现在屏幕上。
但是,现在我需要能够在编辑器和查看器面板之间切换(以便可以预览更改)并能够将编辑的内容发布到数据提供者 (CMS),但我在回发时一直丢失编辑的内容。我试图覆盖“SaveViewState”方法,但是因为内容面板是在预渲染期间创建的(因为它取决于 ViewState 属性),所以控件集合总是显示之前创建的对象(即当编辑面板是显示时,控件集合中的对象是预览面板)。
我不想为了性能问题而同时渲染两个控件。我正在考虑创建一个第三组件(可能是一个隐藏字段)来存储编辑后的文本,但希望这里的某个人可能对如何构建它有更好的了解?
c# - CompositeControl 中的数据绑定控件
我创建了一个 CompositeControl,它本质上是 MultiView 的包装器,但是如果我尝试在视图中使用任何数据绑定控件,例如 GridView 或 FormView,我会收到错误消息:
我已将课程精简到最低限度,但我仍然收到错误消息。该类如下所示:
标记如下:
如果我将 FormView 移到 CompositeControl 之外,它的数据绑定没有问题。此外,如果我使用标准的 MultiView,它也可以正常工作。
有任何想法吗?在此先感谢(第一篇文章,如果我错过了任何信息,请致歉)
编辑:为了让事情变得更加奇怪,如果我将 FormView 提取到单独的 ascx UserControl 并将其放入 View 中,它就可以工作!
user-controls - 复合控件 - 用户控件 - 不同的方法
我看过这段代码来创建一个登录控件,我想我们可以使用 .ascx 文件来创建这个控件,而不是编写这段代码。有人可以解释这两种方法的区别。谢谢。来源:http://www.joe-stevens.com/2010/04/16/creating-a-composite-server-control-with-asp-net/
asp.net - 从复合 Web 控件内的控件回发
假设我们有一个带有组合框和文本框的复合 Web 控件。是否可以内置到控件功能中,以便当文本框中的文本更改时,它会回发并将值作为选项添加到组合框中?
我知道我可以在文本框中添加一个“onchange”处理程序并使用 Javascript 进行一些处理,但这并不是我真正想要做的。有没有办法像这样:
在 web 控件代码中,它连接到文本框的 TextChanged 事件?
asp.net - 不能在复合控件中导致客户端验证
我有一个自定义复合控件,其中包含一个文本框、一些验证器以及几个 UI 组件。我根本无法让客户端验证正常工作。回发后服务器端验证工作正常。我最终计划通过连接到验证 API 在验证失败时将自定义 CSS 添加到 TextBox,但我什至无法运行客户端验证。
由于该控件是通用的,因此验证器不是从复合控件本身内部生成的,而是从外部传入的,如下所示。
我指定了 persistchildren 属性(我相信是正确的),因此验证器实际上已添加到 Validators 属性中。这似乎也可以正常工作。
我有一个派生控件,它将标准 TextBox 指定为 TControl 并公开一个文本属性,但这实际上是派生类型所做的所有事情。复合控件依赖于 CreateChildControls 方法来构建控件并配置验证器。这似乎在生命周期中应该是合适的,因为我已经看到了在 CreateChildControls 方法中创建验证器的复合控件的示例。
再次,服务器端验证发生得很好。javascript 中的 Page_Validators 集合不包含我的验证器。我添加到我无法控制的标记中的任何验证器都可以正常显示在 javascript 集合中并且可以正常工作。
我究竟做错了什么?
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 阶段不能修改控件集合。”
是否有另一种方法/事件可以实现这一目标?
gwt - 带有 CompositeCell 的 GWT CellBrowser
我正在尝试构建一个 CellBrowser,如下所示。
问题是,我无法获得上述代码中给出的标题(数学和科学)。标题来自不同的对象,我的 CompositeCell(CheckBox 和 TextCell)似乎期待/适用于所有项目。
基本上,我正在尝试在 CellBrowser 中构建列表,其中一些具有(CheckBox 和 TextCell),而其中一些只有(TextCell)。
请指教。
c# - 复合控件 JQuery 和被编码的撇号
我遇到了复合子控件将字符串编码为 HTML 的问题。我有一个设置如下的子控制按钮:
问题是当复合控件呈现到源显示的网页时:
显然我不想要',我想要撇号',我似乎没有尝试任何工作,它总是编码出来。这是使一些基本的 jquery 功能正常工作所必需的。任何解决方法?
c# - 在复合控件之间传递值
我有一个控件:定义按钮的复合控件。在使控件可见之前,该按钮调用一个 Command 事件并设置另一个控件的属性的值。
这两个控件都是事先在容器控件中实例化的。我需要在 CreateChildControls() 方法中获取第二种形式的属性值,但是,这是不可能的,为什么?
设想:
步骤个人:
最后,这就是我的问题所在,StepFinancial 控制
我已经尝试将值添加到 StateBag,没有。我尝试在 CommandEventHanlder 中添加一个 QueryString,但得到一个集合被锁定的错误消息。我尝试了缓存和会话(会话不起作用,因为这将被部署到 SharePoint),所以这是不可能的。我试过谷歌搜索,Bing'ing 甚至 Yahoo! 这但没有运气。
更新 我没有提到,我无法将控件添加到 OnPreRender 下的集合中,因为它不会连接任何事件。我也不能使用 EnsureChildControls,因为它搞砸了应用程序的其他部分。但是,我可以将这个级别的属性值添加到状态包中,但我觉得这是一种非常糟糕的方式。