網站首頁 編程語言 正文
Blazor的組件當中, 提供了事件處理功能, 這點類似于使用客戶端(Winform/Wpf)開發, 經常用到的一些類似: 按鈕(Button), 輸入框(TextBox) 用到的一些事件, 例如Click、DoubleClick、TextChanged 等等事件允許我們在后臺代碼當中進行處理相應的邏輯。
介紹事件
在Razor組件中, 同樣提供了事件處理功能。對于具有委托類型值且名為 @on {EVENT}
(例如 @onclick)的 HTML 元素特性,Razor 組件將該特性的值視為事件處理程序。
調用lamda表達式
下面的例子中:
Input輸入框,添加了一個文本改變事件, 然后使用@前綴,添加了一個lamda的表達式,輸出一段字符串 "Hello",
對于button而言,添加了一個 onclick事件。
<input @onchange="@(()=>Console.WriteLine("Hello"))" /> <button @onclick="@(()=>Console.WriteLine("Hello"))" />
使用code {} 方法
我們同樣,可以在code代碼塊當中, 添加C#的方法, 然后在UI元素當中直接應用到我們的方法名即可。
例: 下面演示了一個button按鈕的onclick事件綁定到c#的方法當中, 當點擊按鈕的事件, 將觸發綁定的c#代碼方法:
<button @onclick="Show" /> @code { public void Show() { //當按鈕被點擊, 將執行下面代碼 } }
異步的方法
事件處理同時也支持異步的方法, 返回Task
public async Task Show() { //當按鈕被點擊, 將執行下面代碼 }
事件參數的方法
如果需要在方法當中處理UI當中的一些事件參數, 則可以通過方法添加事件參數即可, 如下所示:
@code{ public async Task Show(MouseEventArgs e) { //... } }
事件參數列表
事件參數的方法(重載)
當同一個UI元素綁定了一個方法, 但是方法具備重載時, 需要我們在UI元素當中明確調用的方法, 否則編譯器無法識別使用哪個方法。
<button @onclick="@(e=>Show(e))" /> //調用帶事件參數的方法 <button @onclick="@(()=>Show())" /> //調用不帶事件參數的方法 @code { //不帶事件參數的方法 public void Show() { } //帶事件參數的方法 public void Show(MouseEventArgs e) { } }
在默認的情況下, 我們如果只編寫一個事件觸發的方法, 并且明確它是否有參數, 在UI元素綁定方法上, 我們都無需傳遞參數。
<button @onclick="@Show" /> @code { public void Show(MouseEventArgs e) { //當button按鈕被點擊, 會自動將事件參數傳遞給e } }
原文鏈接:https://www.cnblogs.com/zh7791/p/12732865.html
相關推薦
- 2022-02-17 Flutter InAppWebView在showModalBottomSheet中無法滾動
- 2023-12-02 浮動清除通用代碼
- 2022-05-08 Python進程間的通信一起來了解下_python
- 2023-02-15 nginx如何配置x-forwarded-for頭部_nginx
- 2023-10-16 nginx啟動與配置
- 2022-03-14 命令刪除node_modules
- 2023-02-09 python如何尋找主串中所有指定子串下標_python
- 2022-10-01 Python?Color類與文字繪制零基礎掌握_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支