我无法在 ItemCommand 上的自动生成的 RadGridView 中获取列名。问题是列是动态数据透视表的结果。这是我的数据的样子(SQL Server 2012):
数据透视前的数据
透视后的数据
因此,我将 WorkWeek 值设为列,并将 WorkHours 作为这些列中的值。
我的 RadGridview 中的更新命令可以按原样用于静态表,但是枢轴(以及由此产生的列名更改)会使工作变得混乱。这是更新命令:
For Each editedItem As GridEditableItem In RadGridViewExcelGridTest.EditItems
Dim newValues As Hashtable = New Hashtable
e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem)
SqlDataSourceExcelGridTest.UpdateParameters.Clear()
SqlDataSourceExcelGridTest.UpdateParameters.Add("DepartmentNumber", newValues("DepartmentNumber"))
SqlDataSourceExcelGridTest.UpdateParameters.Add("ProjectNumber", newValues("ProjectNumber"))
SqlDataSourceExcelGridTest.UpdateParameters.Add("Alias", newValues("Alias"))
SqlDataSourceExcelGridTest.UpdateParameters.Add("WorkWeek", newValues("WorkWeek"))
SqlDataSourceExcelGridTest.UpdateParameters.Add("WorkHours", newValues("WorkHours"))
SqlDataSourceExcelGridTest.Update()
editedItem.Edit = False
Next
我检查了我的 SQL Server Profiler,发现 DepartmentNumber、ProjectNumber 和 Alias 值正在正确地传递给我的存储过程。但是,WorkWeek 和 WorkHours 传递 NULL。这是意料之中的,因为这些列在网格中不存在。如果我查看哈希表中的键/值,我会以“2013-10-25 : 45”的格式看到它们(例如)。因此,我需要传递列的 UniqueName,而不是传递 newValues("WorkWeek"),并将其与 WorkHours 一起使用。
关于如何获取已编辑项目列的 UniqueName 的任何想法?
谢谢!
卡尔