【问题标题】:ObjectDataSource and FormView: how to add UI edition behaviour from business layerObjectDataSource 和 FormView:如何从业务层添加 UI 编辑行为
【发布时间】:2011-05-04 08:41:14
【问题描述】:

我正在使用 ObjectDataSource 和 FormView。

在 FormView 中,我有一组控件。当 FormView 处于编辑状态时,我特别有一个 ComboBox 和一个 TextBox ,它们的相关性如下: 当 ComboBox 有一些特殊的值时,TextBox 必须是只读的或者不是。

目前我得到的行为如下:当 ComboBox 的选定项目发生更改时,ComboBox 会触发回发,并且在我页面的“OnPreRender”中,我获得了 ComboBox 的值并相应地更新了 TextBox 的 Readonly 属性。

我不喜欢这种方法的是我不使用我的对象模型,它被 ObjectDataSource 使用。问题很简单,当 FormView 处于编辑状态时,似乎没有办法获取正在编辑的对象的实例。 'DataItem' 为空,我还没有找到任何方法从控件中的值自动构建新对象以将其传递给我的业务层。当然,我可以通过明确获取控件中的所有值来自己完成整个工作,但这并不好。

有没有人遇到过这种情况?关于如何获得干净设计的任何想法?

【问题讨论】:

    标签: asp.net objectdatasource business-logic formview


    【解决方案1】:

    如何使用 DataItemIndex 或 DataKey?我可能会使用 DataKey,然后使用业务方法来查找对象的键。

    【讨论】:

    • 是的,但我会在没有用户持续修改的情况下获得对象。为了获得这些修改,我必须读取所有控件中的数据,例如 myBusinessObject.Property1 = controlX.Text; myBusinessObject.Property2 = controlY.SelectedValue;....如果我有一种自动的方式,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多