我正在使用 blazor 學習 EventCallBack,但我想知道
- 我的回傳方法有沒有辦法在父端回傳第二個引數。我想知道它來自的 rowID
家長代碼
@foreach (var rw in pg.rows)
{
@if (rw.rowDef == 1)
{
@if (rw.widgetsSection1.Count == 0)
{
<AddWidgetToColumnComponent rowID="rw.rowID" onAddingWidget="AddWidgetToRow"></AddWidgetToColumnComponent>
}
}
}
}
@code{
...
private void AddWidgetToRow(GenericWidgets evnt)
{
//bool confirmed = await JsRuntime.InvokeAsync<bool>("confirm", "Are you sure?");
var row = pg.rows.Where(x => x.rowID == 3).FirstOrDefault();
//row.addWidgetSection1(widgets);
}
}
子組件 AddWidgetToColumnComponent
<button class="btn btn-info" @onclick="@addComponent">Ajouter</button>
@code {
[Parameter]
public int rowID { get; set; }
[Parameter]
public EventCallback<GenericWidgets> onAddingWidget { get; set; }
public async void addComponent()
{
GenericWidgets widget = new GenericWidgets();
await onAddingWidget.InvokeAsync(widget);
}
如果可能,我不確定如何完成此操作(除錯器給我錯誤)。唯一的另一種方法是更改??我的通用類以在其中添加 rowID 屬性。但是還有其他方法嗎?
改變線條(我希望它是什么)
<AddWidgetToColumnComponent rowID="rw.rowID" onAddingWidget="AddWidgetToRow(rw.rowID)"></AddWidgetToColumnComponent>
和這條線
private void AddWidgetToRow(GenericWidgets evnt, int rowID)
uj5u.com熱心網友回復:
如果問題是關于如何讓 EventCallback 在具有多個引數的父級上觸發,我通常通過創建一個類來封裝需要傳遞的所有內容來實作這一點。
所以你可能會得到類似的結果:
[Parameter] public EventCallback<AddWidgetArgs> onAddingWidget { get; set; }
而 AddWidgetArgs 是一個類,例如:
public class AddWidgetArgs
{
public GenericWidgets GenericWidget { get; set; } // My guess at your 1st parameter
public int RowId { get; set; } // Additional parameter
}
然后你像這樣在父級上使用它:
private void AddWidgetToRow(AddWidgetArgs args) { ... } // Or async Task, etc.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364414.html
標籤:C# asp.net核心 西装外套 blazor 服务器端
上一篇:.NETCore在開發程序中繞過或關閉[Authorize(Roles="")]
下一篇:不顯示下拉選單
