Tag: ibindabletemplate

自定义模板化asp.net控件的双向数据绑定

这个问题最初是关于双向绑定工作,但由于缺乏具体的答案和其他方面的进展,我一直在更新它 – 你可以检查编辑历史,但我认为这是更好的明晰。 下面的代码列表允许单个对象与模板化控件进行双向数据绑定。 我想以最简单的方式扩展此示例,以允许为最根对象的复杂类型属性嵌套类似的双向数据绑定启用的模板化控件。 例如, SampleFormData具有属性List Items 。 我希望能够在最根本模板(从此代码清单)中绑定到此列表,并在可编辑的文本框列表中显示字符串数据,可能还有插入,删除,重新绑定输入的命令-changes(返回绑定对象的List属性)。 此外,如果这是一个复杂类型的列表( SampleFormChildData ,而不是字符串), SampleSpecificEntryForm可以在列表中使用新的嵌入式SampleSpecificEntryForm ,绑定到每个列表的项目,如转发器。 如果作者如此选择的话,依此类推叶子简单的属性。 ui-fields不需要自动生成,只能用于绑定。 注意: List很特殊,因为即使是内置绑定也不能直接处理字符串作为DataItem – 直接绑定到字符串作为列表中的项目不是必需的,但肯定是有价值的。 这与FormView不同,因为它不是为了期望绑定到项目列表中的一个而构建的,而是仅构建为在视图状态中持久保存的单个项目。 与FormView不同,它只有一个类似于FormView的EditTemplate的默认模板。 同样,绑定到类似集合的属性也只有一个视图 – 编辑。 没有选择行然后编辑。 一切都是可编辑的。 目的是使双向绑定表单更容易构建。 在我看来,应该有两种绑定。 SingleEntityBinding和CollectionBinding 。 SingleEntityBinding将单个对象实例作为数据源(由SampleSpecificEntryForm原型),而CollectionBinding可以绑定到它的父SingleEntityBinding ,其属性为DataSourceID=”EntryForm1″ DataMember=”Items”如下面DataList1的代码示例所示。 两种类型都应支持嵌套任何一种类型。 对支持对象的数据进行插入/更改/删除类型操作等列表操作是表单作者的责任; 但是,这种机制实施起来相对简单。 这是一些代码,希望它能帮到某些人。 200分是为了达到这个布局目标的最佳建议…… using System.ComponentModel; using System.Collections.Specialized; using System.Collections.Generic; namespace System.Web.UI.WebControls.Special { [Serializable] public class SampleFormData { public […]