【发布时间】:2011-07-15 15:31:24
【问题描述】:
我有一个现有的 ASP.NET 3.5 应用程序,它带有一个包含用于对域对象执行 CRUD 操作的 FormView 控件的 Web 表单。一个新的需求是向需要在 FormView 中反映的域对象添加一些动态内容。这意味着我需要根据绑定的对象即时生成这些控件。
我正在为 FormView 使用 ObjectDataSource,它返回域对象进行绑定。域对象现在将具有一个属性,该属性返回一个 Section 对象的集合,每个 Section 包含一个问题列表。在我的表单中间,我需要显示每个部分,其中包含问题列表和一个允许用户输入答案的文本框。
我能够以多种不同的方式生成 UI,但我还没有找到一种在回发页面时包含动态字段数据的方法。因为在 FormView 绑定数据之前我不会知道“模式”,所以我想知道我在管道中是否为时已晚,无法正确处理回发数据。
生成这些字段以便正确回发数据的最佳方式是什么?
更新
我仍在寻找完成这项任务的最佳方法,但我找到了一个至少可行的解决方案。简而言之,我在 FormView 的 DataBound 事件处理程序中创建动态内容,因为这是管道中我始终可以获取对 FormView 控件的引用的第一个位置。然后我按照 Muhammed 的建议从 Request.Form 集合中提取值,并将它们放入 FormView 的 ItemInserting 和 ItemUpdating 处理程序中的 EventArgs 对象中。
这不是那么简单,因为每个控件都必须有一个唯一的 ID,然后我可以使用它来定位值 - 这还不错。但是,我必须在数据源中实现自定义逻辑,然后将这些值映射到数据绑定对象中。
总而言之,还不错,但肯定不是我想在其他解决方案中复制的东西,所以我希望还有更好的方法。
【问题讨论】:
标签: c# .net asp.net data-binding formview