首页 > 解决方案 > C# - Blazor @onlick 如何让 HTML 元素被点击

问题描述

我目前正在学习 C# Blazor 框架,我面临一个问题,如何获取我点击的 HTML 元素?

我需要它来获取它在 DOM 和父 HTML 元素中的位置。

例如,使用 JQuery 的经典方式:

$('selector').click(function (event) {
    alert($(this).index());
});

http://jsfiddle.net/bCTAH/

我知道,Blazor 中有 @onclick 属性,例如:

<tr @onclick="OnYes">...</tr>

@functions {
    ElementReference inputTypeFileElement;

    public async Task MainTableOnClick(MouseEventArgs e)
    {
        Console.WriteLine("clicked!");
    }
}

如何获取被点击的 TR HTML 元素的索引?

我的任务是将 Windows 窗体应用程序转换为 Web 版本。旧的 Windows 窗体有 DataGridView,每一行也有 onClick 事件和标记对象。当单击 DataGridView 的某些行时,onClick 获取该行的标记对象并使用它将数据填充到表单上的另一个 DataGridView 中。所以,我需要知道,单击哪一行从某个对象(它可以是 DataTable,或者更简单地说,Array)中获取数据。基于数组中的行索引和索引,我需要获取数据以填充网页上的另一个表。

因此,第一个表是客户(姓名、姓氏等)。

当单击带有客户端的某些行时,我需要获取表中的行(客户端)索引。通过该索引,我将从客户端数组中获取数据。通过找到 Client 对象,我计划动态填充页面上的另一个表。

标签: c#jqueryasp.net-core.net-coreblazor

解决方案


在这种情况下,您可以使用JSInterop

或者

<tr @onclick="() => TrClickedAtIndex(0)">...</tr>

@code {
    ElementReference inputTypeFileElement;

    public void TrClickedAtIndex(int index)
    {
        Console.WriteLine($"tr clicked at index {index}!");
    }
}


推荐阅读