簡體   English   中英

c# blazor 服務器 - 將 class object 從孩子傳給父母

[英]c# blazor server - pass class object from child to parent



你好

我正在嘗試在 blazor 服務器中制作一個可重用的組件

一個列表框,我在其中傳遞一個 id(它用於填充自身,然后將用戶選擇的內容傳回

我的想法是將一個 ID 傳遞給一個組件,從父級傳遞給子級,這工作正常,但我只能從子級那里得到一個字符串,我想發送一個 class object 回來,這可能嗎,我試過了下面




父母

@using Microsoft.AspNetCore.Components.Web

@page "/"

@code {

    private void IwasGivendatabackfromclient(HagClass x)
    {
        string text = x.parChildSet;
        
    }


}


<h1>Hello, world!</h1>

Welcome to your new app.

<HagChild GiveMeDatFromPar="Balls of steel" OnEmployeeDeleted="IwasGivendatabackfromclient"></HagChild>



Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Web;

namespace Blazor_PH_Par_Child.Shared
{
    public class HagClass
    {
        public  string parSentMe { get; set; }
        public string parChildSet { get; set; }

    }
}



孩子

@code {


    [Parameter]
    public string GiveMeDatFromPar { get; set; }

    [Parameter]
    public EventCallback<object> OnEmployeeDeleted { get; set; }

    HagClass x = new HagClass();

    public void Delete_Click()
    {
        x.parChildSet = "test";

        OnEmployeeDeleted.InvokeAsync(x);
        


        }
}


<h3>HagChild</h3>

<button type="button" class="btn btn-danger m-1"
        @onclick="Delete_Click">
    Delete
</button>

<p>hello @GiveMeDatFromPar</p>

是的,有可能。 您可以像這樣添加參數

[Parameter] 
public EventCallback<MyModel> OnEmployeeDeleted { get; set; }

然后單擊刪除按鈕后,創建 Mymodel 的項目類型並將其發送回父級

MyModel model = new(){  .... }
OnEmployeeDeleted.InvokeAsync(model);

在父頁面中,您必須創建 function 來獲取子數據。

private void GetDeletedInfo(Mymodel model){}

組件的調用將是

<HagChild OnEmployeeDeleted="data => GetDeletedInfo(data)" />

@Baskovli @Quango 在這里需要幫助,我正在創建一個用戶控件以使用 csvHelper 導入 csv 文件,在我的情況下, MyModel將始終不同,我如何實現它? 任何幫助都會得到幫助

[Parameter] public EventCallback<MyModel> OnEmployeeDeleted { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM