【问题标题】:Devexpress gridview moving multiple rows up and down based on multi selected rowsDevexpress gridview根据多选行上下移动多行
【发布时间】:2018-07-17 08:06:18
【问题描述】:

我有一个 gridview,我们在其中为用户提供移动行的选项,目前只有上下移动 1 行的可能性(在按钮单击和拖放时)。

我们需要让用户可以根据多选中的选定行移动多行,是否有移动多行的示例?

在当前情况下,我们使用对网格进行排序的数据库列(排序),我可以使用 foreach 将所有选定的行更新 +1 或 -1,但我如何处理未选定的行?

【问题讨论】:

    标签: gridview devexpress devexpress-gridcontrol


    【解决方案1】:

    如果标准 Drag And Drop Behavior 不符合您的要求,您可以在此处找到有关如何手动移动行的示例代码:

    https://github.com/DevExpress-Examples/how-to-reorder-grid-rows-by-drag-and-drop-e764

    您需要选择一个较旧的分支,例如 7.2.1。以下是此示例中的相应代码:

    private void MoveRow(int sourceRow, int targetRow)
        {
            if ( sourceRow == targetRow || sourceRow == targetRow + 1 )
                return;
    
            GridView view = gridView1;
            DataRow row1 = view.GetDataRow(targetRow);
            DataRow row2 = view.GetDataRow(targetRow + 1);
            DataRow dragRow = view.GetDataRow(sourceRow);
            decimal val1 = (decimal)row1[OrderFieldName];
            if ( row2 == null )
                dragRow[OrderFieldName] = val1 + 1;
            else
            {
                decimal val2 = (decimal)row2[OrderFieldName];
                dragRow[OrderFieldName] = (val1 + val2) / 2;
            }
        }
    

    如您所见,您可以使用小数而不是 int,因此完全可以避免处理未选择的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      相关资源
      最近更新 更多