我正在尝试使用 Radzen 在 Blazor 中创建一个弹出窗口,但我相信由于代码部分中的对话服务,这不起作用。一切运行正常,除了当我单击按钮时没有弹出任何内容。我怎样才能让它工作?
<RadzenDataGridColumn TItem="IDictionary<string, object>" Title="Modify">
<Template>
<RadzenButton ButtonStyle="ButtonStyle.Info" Icon="edit"
Class="m-1" Click=@EditSkill/>
</Template>
</RadzenDataGridColumn>
@code{
async Task EditSkill()
{
await DialogService.OpenAsync("Edit Skill", ds =>
@<RadzenCard>
<div>
<p class="mb-4">Skill ID <b>1</b></p>
<div class="row">
<div class="col">
<RadzenButton Text="Ok" Click="() => ds.Close(true)" Class="mr-1"
Style="width: 80px;" />
<RadzenButton Text="Cancel" Click="() => ds.Close(false)"
ButtonStyle="ButtonStyle.Secondary" Class="mr-1" />
</div>
</div>
</div>
</RadzenCard>);
}
}
为了使用 Radzen 的 Dialog 控件,您需要将其注册到应用程序的服务集合中并引用该组件。
首先,在 Shared\MainLayout.razor 中添加对 Dialog 组件的引用:
<RadzenDialog/>
然后,对于 .Net 6 之前的版本,请使用:
services.AddScoped<DialogService>();
在 Startup.cs ->ConfigureServices 方法中
对于.Net 6及更高版本,在program.cs -> Main方法中使用此方法:
builder.Services.AddScoped<DialogService>();
在此处查看 Radzen 文档:https://blazor.radzen.com/get-started
设置渲染模式