0

我正在使用 PivotGrid 将字符串值显示为我的数据区域值。我的第一个问题是,因为数据值是一个字符串,所以在执行数据透视时所有单元格都包含零。但是,我通过将列聚合类型从 sum 更改为 max 来解决这个问题。

现在,我的问题。我有一个 SQL 过程,它接受一个类型参数并返回该类型的可能值列表。枢轴网格中的每个“列”都是这些类型之一。我只显示类型的字符串值,但我在网格的数据源中具有 int 值(需要传递给 proc)以及一个单独的字段。现在,我可以拥有任意数量的列,并且需要能够使用 LookUpEdit 存储库项来编辑单元格。每个单元格返回的值列表将由我正在处理的列决定。因此,我需要动态地为每个单元格创建查找编辑,将单元格的类型 ID 作为参数传递以正确填充下拉列表。

我可以这样做,但是查找中的 ID 和网格上的 ID 之间没有链接。当我下拉时,我可以从查找中选择一个值,但我不知道如何将我选择的值绑定到网格数据源中的特定字段(单元格的值只是切换回我下拉之前的值)。我认为主要问题是我在网格的数据区域中显示字符串值而不是数值。此屏幕的用户将需要字符串值来知道他们在做什么,并且需要能够从查找中选择一个新的字符串值来编辑基础表的 int 值。

我希望这足够清楚。如果您需要更多详细信息,请随时询问。

谢谢!

4

1 回答 1

0

您可以使用PivotDrillDownDataSource获取网格数据源的所有 ID。订阅PivotGridControl.EditValueChanged事件,更新网格的数据源并PivotGridControl使用PivotGridControl.RefreshData以下方法刷新:

private void pivotGridControl_EditValueChanged(object sender, EditValueChangedEventArgs e)
{
    var drillDown = e.CreateDrillDownDataSource();

    foreach (PivotDrillDownDataRow row in drillDown)
    {
        var id = row["Your ID Column"];

        //Get your Data Source entity by id

        var value = e.Editor.EditValue;

        //Set value to your Data Source entity
    }

    pivotGridControl.RefreshData();
}
于 2014-08-27T05:03:55.170 回答