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 プロファイラーを確認したところ、DepartmentNumber、ProjectNumber、および Alias の値がストアド プロシージャに正しく渡されていることがわかりました。ただし、WorkWeek と WorkHours は NULL を渡します。これらの列はグリッドに存在しないため、これは当然のことです。ハッシュテーブルのキー/値を見ると、「2013-10-25 : 45」の形式で表示されます (たとえば)。そのため、newValues("WorkWeek") を渡す代わりに、列の UniqueName を渡し、それを WorkHours でも使用する必要があります。
編集されたアイテムの列の UniqueName を取得する方法についてのアイデアはありますか?
ありがとう!
カール