Jan*_*Jan 4 c# asp.net blazor mudblazor
我正在使用 MudBlazor,我想检测单个表行上的双击并对事件做出反应。但是,表的API中并没有列出双击。单击回调很容易完成OnRowClick(另请参阅此处的 SO)。没有与双击等效的功能。
ondblclick我尝试使用 Blazor 事件
<MudTd @ondblclick="OnOrderDbClicked">
// ...
<MudTd/>
Run Code Online (Sandbox Code Playgroud)
我对此有两个问题:
<RowTemplate/>元素不会接受它。我只有解决问题 1 的拐杖:将变量绑定MyOrderVM MyItem到SelectedItem表的 item 参数,并在双击调用的方法中访问对象(因为双击也会导致两次单击来选择该项目)。
我没有做过很多测试,但似乎这可以工作,但是没有更好的解决方案吗?还是我太担心副作用?
正如您所说,目前没有像 OnRowClick 这样的开箱即用的双击方式。但是,请随意在 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/>
Run Code Online (Sandbox Code Playgroud)
这是一个MudBlazor Playground来展示它。
免责声明:
我是 MudBlazor 的贡献者
小智 9
OnRowClick。\n在TableRowClickEventArgsit 提供程序中,有一个属性MouseEventArgs具有 property Detail。该属性的文档说明:\n\n\n短时间内发生的连续点击次数,递增 1。
\n
因此,通过将其与 2 进行比较,您可以对双击做出反应。我\xc2\xb4已经在我自己的应用程序中使用了它,并且可以确认它是否有效。
\n