我需要根据Rad Grid上自定义编辑表单中的某些值更新我的代码隐藏中正在编辑的项目的某些值。我可以从Grid的一个事件处理程序访问该项(并更新一些值)吗?目前我将值存储在临时变量中,然后在ObjectDataSource的Inserting / Updating事件处理程序中注入新值,但如果我可以在一个位置完成所有操作,那将会更好。 (我不能在ObjectDataSource事件处理程序中完成所有操作,因为我无法访问Grid的编辑表单中的控件。)
我一直在使用GridEditableItem对象的ExtractValues和UpdateValues方法,但我没有运气。
任何提示将不胜感激:)
答案 0 :(得分:1)
尝试使用网格的UpdateCommand事件处理程序。进入它的事件参数对象包含对editform项的引用。从那里,您可以提取新输入的值并将它们传递给ObjectDataSource:
Hashtable newValues = new Hashtable(); ((GridEditableItem)e.Item).ExtractValues(newValues);
//现在newValues哈希表包含每个列字段的键/值对。
希望它有所帮助。
答案 1 :(得分: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操作。如果执行此操作,项目将自动显示在数据库代码中。希望使用此信息,您可以在互联网上挖掘并找到更详细的示例。
BTW,我在Telerik RadGrid上使用它,这个代码实际上已添加到定义网格编辑表单的ASCX用户控件中。