如何检测双击 MudBlazor 中的 table 行?
How to detect a double click on a table row in MudBlazor?
我正在使用 MudBlazor,我想检测对单个 table 行的双击并对事件做出反应。但是,API of the table. The single click is easy to do with the OnRowClick
callback (see also ) 中没有列出双击。没有等效的双击。
我尝试将 Blazor 事件 ondblclick
与
一起使用
<MudTd @ondblclick="OnOrderDbClicked">
// ...
<MudTd/>
我有两个问题:
- 我能捕捉到双击。但是我无法让它知道被单击的行(对此我有一个解决方法)。
- 我还必须添加到每个单元格,因为
<RowTemplate/>
元素不会接受它。
我只有问题1的拐杖:将变量MyOrderVM MyItem
绑定到table的SelectedItem
项参数,并在table调用的方法中访问对象双击(因为 其中 select 项目)。
我没有做过很多测试,但似乎这可行,但是没有更好的解决方案吗?还是我太担心副作用了?
正如您所说,目前没有像 OnRowClick 这样的开箱即用的双击方式。但是,请随意创建 issue in the repo.
作为变通方法,您可以使用方法 1 稍作调整以停止将点击事件传播到 MudTable。我认为这种方式比绕过 SelectedItem
更容易理解
<MudTd>
// the click is handled by the div and not bubbling up to the MudTd
<div @onclick="@EmptyCallback" @onclick:stopPropagation="true"
@ondblclick="@( (x) => DoSomething(context))" >
// ...
</div>
<MudTd/>
这里有一个MudBlazor Playground来展示一下。
免责声明:
我是 MudBlazor 的贡献者
我正在使用 MudBlazor,我想检测对单个 table 行的双击并对事件做出反应。但是,API of the table. The single click is easy to do with the OnRowClick
callback (see also
我尝试将 Blazor 事件 ondblclick
与
<MudTd @ondblclick="OnOrderDbClicked">
// ...
<MudTd/>
我有两个问题:
- 我能捕捉到双击。但是我无法让它知道被单击的行(对此我有一个解决方法)。
- 我还必须添加到每个单元格,因为
<RowTemplate/>
元素不会接受它。
我只有问题1的拐杖:将变量MyOrderVM MyItem
绑定到table的SelectedItem
项参数,并在table调用的方法中访问对象双击(因为
我没有做过很多测试,但似乎这可行,但是没有更好的解决方案吗?还是我太担心副作用了?
正如您所说,目前没有像 OnRowClick 这样的开箱即用的双击方式。但是,请随意创建 issue in the repo.
作为变通方法,您可以使用方法 1 稍作调整以停止将点击事件传播到 MudTable。我认为这种方式比绕过 SelectedItem
<MudTd>
// the click is handled by the div and not bubbling up to the MudTd
<div @onclick="@EmptyCallback" @onclick:stopPropagation="true"
@ondblclick="@( (x) => DoSomething(context))" >
// ...
</div>
<MudTd/>
这里有一个MudBlazor Playground来展示一下。
免责声明:
我是 MudBlazor 的贡献者