Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对Syncfusion Blazor网格中默认行为的修改_C#_Datagrid_Blazor_Syncfusion - Fatal编程技术网

C# 对Syncfusion Blazor网格中默认行为的修改

C# 对Syncfusion Blazor网格中默认行为的修改,c#,datagrid,blazor,syncfusion,C#,Datagrid,Blazor,Syncfusion,我有一个为我工作的网格,但是我的客户有一个与默认行为截然不同的需求。我现在迫不及待地要尽快执行这些更改 网格有一个复选框列,并且启用了多重选择。用户只能通过复选框选择行。为了简洁起见,我将把设置复制到这里 <SfGrid @ref="Grid" DataSource="Coberturas" Width="100%" EnablePersistence="true"> <GridSelec

我有一个为我工作的网格,但是我的客户有一个与默认行为截然不同的需求。我现在迫不及待地要尽快执行这些更改

网格有一个复选框列,并且启用了多重选择。用户只能通过复选框选择行。为了简洁起见,我将把设置复制到这里

<SfGrid @ref="Grid" DataSource="Coberturas" Width="100%"  EnablePersistence="true">
    <GridSelectionSettings Type="SelectionType.Multiple" CheckboxMode="CheckboxSelectionType.Default" CheckboxOnly="true"></GridSelectionSettings>
    <GridEditSettings AllowAdding="false" AllowDeleting="false" AllowEditing="true" AllowEditOnDblClick="false" AllowNextRowEdit="false"></GridEditSettings>

它没有工具栏。不能添加行,也不能删除行。需要EnablePersistence的原因不在这里。有一个主键列,但它是隐藏的(Visible为false)。关于其余列,它们是文本列

客户已要求按以下方式更改默认行为:

  • 当用户单击复选框时,该行必须同时选中和打开 用于编辑
  • 更改值后,编辑框必须保持不变 打开,即使用户按Enter键或单击另一行
  • 如果用户单击另一行,则该新行必须同时选择并打开以供选择 编辑。即使无法将前一行与 盒子打开(我怀疑这在Syncfusion中是否可能 网格),必须保留以前的选择。所有选择都不能被删除 即使用户确认版本或移动到另一版本,也会丢失 划船


我是Syncfusion控件的新手,不知道如何执行此要求。我想我必须为一些网格事件(可能是RowSelected或OnRecordClick?)创建处理程序,但我也可能必须中断默认的选择和编辑行为,我不知道如何做到这一点。由于我的压力,任何想法都将受到高度赞赏。

您可以通过使用网格中的行选定事件和操作完成事件来实现此要求。在RowSelected事件处理程序中调用StartEdit方法,以在一次单击中启用编辑。在基于RequestType的OnActionComplete事件处理程序中,您可以根据RowSelected事件处理程序中存储的选定行索引选择所需的行

样本:

请参考下面的代码

<GridEvents RowSelected="RowSelected" OnActionComplete="OnActionComplete" TValue="Order"></GridEvents>

public List<double> SelectIndexes = new List<double>();
SfGrid<Order> Grid;
public bool flag { get; set; } = true;
public async Task RowSelected(RowSelectEventArgs<Order> args)
{
    if (flag)
    {
        await Grid.StartEdit();
        SelectIndexes.Add(args.RowIndex);
    }
    flag = true;
}

public async Task OnActionComplete(ActionEventArgs<Order> args)
{
    if (args.RequestType.Equals(Action.BeginEdit) && SelectIndexes.Count != 0)
    {
        flag = false;
        await Grid.SelectRows(SelectIndexes);
    }
}

public List selectindex=new List();
SFG网格;
公共布尔标志{get;set;}=true;
公共异步任务RowSelected(RowSelectEventArgs args args)
{
国际单项体育联合会(旗)
{
等待Grid.StartEdit();
选择Indexes.Add(args.RowIndex);
}
flag=true;
}
公共异步任务OnActionComplete(ActionEventArgs args)
{
if(args.RequestType.Equals(Action.BeginEdit)&&SelectIndexes.Count!=0)
{
flag=false;
等待网格。选择行(选择索引);
}
}
参考资料:

你试过与他们的支持者交谈吗?也许你会得到一个更好更快的答案