Blazor-更改子组件中的值,但将其更新为父接口

  • 本文关键字:更新 接口 组件 Blazor- blazor
  • 更新时间 :
  • 英文 :


我有一个Blazor Server应用程序,我有一张Blazor页面,在选项卡标题中有一些选项卡,我显示网格中的行数,例如Tab1Name(RowCount(、Tab2Name(RowCount(、Tab3Name(RowCount

我已经创建了一个显示数据的网格组件。此数据作为[参数]从我的页面中传递下来。在该网格中,用户可以编辑数据,例如添加/编辑/删除记录。这可能会更改选项卡标题中显示的计数。所以我想刷新这个计数。

知道如何刷新选项卡标题中的RowCount吗?

我能介绍一下如何强制子控件刷新父页,而不重新加载整个页面吗?

TIA-

您可以在chicd组件上创建一个EventCallback,并让父组件订阅它,类似于

子组件

[Parameter]
public EventCallback<int> OnRecordAddDelete {get; set;}
private AddRecord(){
if (OnRecordAddDelete.HasDelegate) OnRecordAddDelete.InvokeInvokeAsync(no of rows in grid);
}
private DeleteRecord(){
if (OnRecordAddDelete.HasDelegate) OnRecordAddDelete.InvokeAsync(no of rows in grid);
}

在父组件中,您可以订阅行更改事件

<childcomponent OnRecordAddDelete=@(e=> here you get rows count in grid) />

虽然Surinder的回答没有错,但对于组件到组件通知的整个问题,有一种不同的方法。

它被称为Blazor通知模式。您的数据生活在一个视图服务中,该服务具有一个或多个事件来表示其数据集已更改。任何需要了解更改的组件都会注入服务并订阅事件。组件事件处理程序通常只调用StateHasChanged。

这里有一个Stackflow答案,它演示了使用WeatherForecast列表的Notification模式。当API调用完成时,如何从主.RAZOR页面中的所有子组件触发/刷新我的主.RAZOR页面?

相关内容

  • 没有找到相关文章