我正在使用MudBlazor,我想检测一个表行上的双击并对事件做出React。但是,API of the table.中没有列出双击。单击很容易用OnRowClick
回调(另请参见here on SO)完成。没有与双击等效的函数。
我尝试将Blazor事件ondblclick
与
<MudTd @ondblclick="OnOrderDbClicked">
// ...
<MudTd/>
我对此有两个问题:
1.我可以捕捉到双击,但是我不能让它知道被点击的行(对此我有一个变通方法)。
1.我还必须在每个单元格中添加to,因为<RowTemplate/>
元素不接受它。
我只有一个拐杖问题1:将变量MyOrderVM MyItem
绑定到表的SelectedItem
项目参数,并在双击调用的方法中访问对象(因为a double click also causes two single clicks选择了项目)。
我还没有做过很多测试,但似乎这是可行的,但有没有更好的解决办法?或者我担心太多的副作用?
3条答案
按热度按时间nxagd54h1#
正如您所说的,目前还没有像OnRowClick那样的开箱即用的双击方式,但是您可以随意创建一个issue in the repo。
作为一种解决方法,您可以使用方法1,但需要做一些调整,以停止click事件向MudTable的传播。
这里有一个MudBlazor Playground来显示它。
免责声明:
我是MudBlazor的撰稿人
rqqzpn5f2#
在
MudTd
中有一个EventCallback
ondblclick
。你可以调用它并传递一个带有你想要的参数的方法。见下面的示例代码。在
@code
节中创建一个方法,并按照回调中的命名方式命名。希望能帮上忙。
slhcrj9b3#
更新:
对于在搜索中找到这个的人来说,MudBlazor现在确实有一个双击的指示器。
它不是explixit参数,而是
OnRowClick
参数的一部分。在TableRowClickEventArgs
it提供程序中,有一个属性MouseEventArgs
,该属性具有属性Detail
。此属性的文档说明:在短时间内发生的连续单击次数,递增1。
因此,通过检查2,你可以对双击做出React。我已经在我自己的应用程序中使用过这个,可以确认它的工作原理。