0

我需要根据我们 Rad Grid 上的自定义编辑表单中的一些值来更新我的代码隐藏中正在编辑的项目的一些值。我可以从 Grid 的事件处理程序之一访问项目(并更新一些值)吗?目前我将值存储在临时变量中,然后将新值注入到 ObjectDataSource 的 Inserting/Updating 事件处理程序中,但如果我能在一个地方完成这一切会更好。(我无法在 ObjectDataSource 事件处理程序中完成所有操作,因为我无法访问网格编辑表单中的控件。)

我一直在使用 GridEditableItem 对象的 ExtractValues 和 UpdateValues 方法,但我没有任何运气。

任何提示将非常感谢 :)

4

2 回答 2

1

尝试使用网格的 UpdateCommand 事件处理程序。进入其中的事件参数对象包含对编辑表单项的引用。从那里您可以提取新输入的值并将它们传递给 ObjectDataSource:

哈希表 newValues = new Hashtable(); ((GridEditableItem)e.Item).ExtractValues(newValues);

//现在 newValues 哈希表包含每个列字段的键/值对。

希望能帮助到你。

于 2010-07-12T13:54:25.070 回答
0

有点晚的答案,但希望它会帮助某人:

在后面的网页代码中这样做:

Partial Public Class SomeWebPage
   Implements IBindableControl

   Public Sub ExtractValues(ByVal dictionary As IOrderedDictionary) Implements IBindableControl.ExtractValues

      ' Your code to get the custom value
      Dim CustomString As String = "the custom thing"

      dictionary.Add("DatabaseItemName", CustomString)

   End Sub

“DatabaseItemName”是数据库代码中预期的数据项名称。我总是使用 ObjectDataSource 来访问数据库,因为我们主要使用存储过程来进行数据库 CRUD 操作。如果您这样做,这些项目会自动显示在 DB 代码中。希望使用此信息,您可以在 Internet 上进行挖掘并找到更详细的示例。

顺便说一句,我将它与 Telerik RadGrid 一起使用,并且此代码实际上已添加到定义网格编辑表单的 ASCX 用户控件中。

于 2012-03-29T18:12:39.227 回答