0

我在使用 DevExpress 控件的 ASP.NET 项目中使用 SOAP Web 服务。我要做的是从 web 服务获取数据并将其绑定到 DevExpress 网格控件。

使用网络服务时,我得到了一些IEnumerable容器。是否可以在 web 服务和 Devexpress 网格控件之间创建某种动态关系?我希望能够在 IEnumerable 容器中的每条记录上使用 CRUD 操作,这些操作将在用户输入 [POST] 后返回到 web 服务

在 web 服务和 gridcontrol [GET 和 POST form the gridview] 之间建立桥梁的最佳方法是什么?

4

1 回答 1

1

我的建议是编写一个辅助类来为您处理 CRUD 操作,与 DevExpress 控件分开。

通过让中间类处理与数据源之间的 CRUD 操作,将显示逻辑与业务逻辑( MVC 风格)分开总是一个好主意。这使我们能够在一个位置对数据源(在您的情况下为 Web 服务)进行更改,而不会破坏任何其他代码。我们甚至可以将数据源从 Web 服务更改为 SQL Server(或 MySQL 或其他任何东西),而无需调整前端。

至于绑定到 DevExpress 控件,您将需要单独处理 CRUD 行事件 - 它们有一些很好的示例和非常好的文档。您可能应该阅读一般的数据绑定以获得更高级的选项,但对于来自 ASP.NET 页面上的 DevExpress 控件的 CRUD 事件,我们通常会执行以下操作(在代码隐藏中):

  1. 实例化表示数据记录的对象(如果它是现有记录,则使用我们的帮助程序类从数据源中检索它):var Record = new Record();var Record = RecordHelper.GetWithId(PrimaryKeyValue);
  2. 根据需要对该对象进行更改:Record.Name = "New Name";
  3. 将对象传递回我们的帮助类中的方法,该方法处理对数据源的必要调整:RecordHelper.Insert(Record);RecordHelper.Update(Record);
  4. 更新页面上的网格(根据需要)

您可以编写某种子类来为您处理绑定和更新,或者开始阅读Entity Framework之类的方法,但我建议您从上面开始,以便您了解 DevExpress 控件和数据库之间的交互。


ps这篇 MSDN 文章是开始学习一些非常简单但功能强大的 2 路数据绑定的好地方。这可能是您首先要寻找的;如果您碰巧使用的是 .NET 4.5,请注意它提供了强类型数据绑定,这让生活变得更加轻松。

于 2012-09-05T15:33:31.863 回答