栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

Blazor中的事件处理

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Blazor中的事件处理

同javascript一样,Blazor也支持DOM上的事件,比如onclick,onfocus,onblur等,但与javascript的写法又有些不一样。

1.无参数调用

直接使用@οnclick=“函数名” 就行了


@code {
    private void Test()
    {
        Console.WriteLine("test button clicked");
    }
}
2.默认参数

DOM的事件通常都带有EventArgs,里面包含了一些与事件相关的信息,Blazor也不例外,她包含一个隐式的EventArgs。对于上面的例子,可以修改函数,增加参数MouseEventArgs:


@code {
    private void Test(MouseEventArgs e)
    {
        Console.WriteLine("test button clicked");
    }
}

这里click事件对应的是MouseEventArgs,完整的列表以及各参数包含的属性可以参考官方文档:
https://docs.microsoft.com/en-us/aspnet/core/blazor/components/event-handling?view=aspnetcore-3.1

3.自定义参数

如果函数有自定义参数,则需要使用Lambda方式来调用:


@code {
    private void Test(string name)
    {
        Console.WriteLine("test button clicked:"+name);
    }
}
4.preventDefault

JavaScript里面可以通过调用EventArgs的preventDefault函数来阻止事件默认的行为,Blazor里面略有不同,要通过 @on{EVENT}:preventDefault的声明方式来实现。以下代码将阻止所有的键盘输入:



@code {
    private void KeyPress(KeyboardEventArgs e)
    {        
    }
}

@on{EVENT}:preventDefault 还可以是一个表达式或者变量,将上面的例子稍作修改,如下代码只阻止 “@” 符号的输入:



@code {
    bool shouldPreventDefault = true;
    private void KeyPress(KeyboardEventArgs e)
    {
        shouldPreventDefault = (e.Key == "@");
    }
}
5.阻止冒泡

除了@on{EVENT}:preventDefault,Blazor还提供 @on{EVENT}:stopPropagation ,可以用来阻止事件冒泡,具体用法和preventDefault一样,就不再赘述了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909188.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号