如何通过单击blazor中的按钮将数据从foreach循环传递到另一个页面
我想通过单击“添加问题”按钮,将foreach循环中的当前客户的如何通过单击blazor中的按钮将数据从foreach循环传递到另一个页面,blazor,Blazor,我想通过单击“添加问题”按钮,将foreach循环中的当前客户的customer.Id传递到另一个页面 <tbody> @foreach (var customer in customers) { <tr> <td>@customer.Id / @customer.LastName / @customer.Email</td> <RadzenButton Text
customer.Id
传递到另一个页面
<tbody>
@foreach (var customer in customers)
{
<tr>
<td>@customer.Id / @customer.LastName / @customer.Email</td>
<RadzenButton Text="Add issue" ButtonStyle="Radzen.ButtonStyle.Secondary" Click="@GoToCustomerIssue"/>
<RadzenButton Text="Edit" ButtonStyle="Radzen.ButtonStyle.Secondary" />
<RadzenButton Text="Delete" ButtonStyle="Radzen.ButtonStyle.Secondary" />
</tr>
}
</tbody>
您可以将lambda传递给事件处理程序。所以你的台词是:
<RadzenButton Text="Add issue" ButtonStyle="Radzen.ButtonStyle.Secondary" Click="@GoToCustomerIssue"/>
尽管如此,完全不使用事件处理程序可能更为惯用,只需构造URL以直接包含
id
,但我认为RadzenButton
不支持这一概念。您可以使用布尔值来显示customerissue逻辑,而不是导航
此页面
<tbody>
@foreach (var customer in customers)
{
<tr>
<td>@customer.Id / @customer.LastName / @customer.Email</td>
<RadzenButton Text="Add issue" ButtonStyle="Radzen.ButtonStyle.Secondary" Click="()=>GoToCustomerIssue(customer)"/>
<RadzenButton Text="Edit" ButtonStyle="Radzen.ButtonStyle.Secondary" />
<RadzenButton Text="Delete" ButtonStyle="Radzen.ButtonStyle.Secondary" />
</tr>
}
</tbody>
@if (SelectedCustomer is not null){
<CustomerIssue Customer=SelectedCustomer />
}
@code {
List<customer> customers {get; set;} // or whatever your customer class is called
customer SelectedCustomer {get; set;}
GoToCustomerIssue(customer clickedCustomer){
SelectedCustomer = clickedCustomer;
}
}
这样,您就可以访问整个客户类(ID、LastName、Email等),而不仅仅是ID,并且不必导航到新页面。别担心,在您选择客户之前,浏览器甚至不会开始加载customerissue页面。您确定要导航而不是使用组件吗?我很少需要实际导航到新页面。我需要一个新页面来创建评论并显示问题的评论列表。如果要解决此问题,您认为如何?
<RadzenButton Text="Add issue" ButtonStyle="Radzen.ButtonStyle.Secondary" Click="() => GoToCustomerIssue(customer.Id)" />
public int GoToCustomerIssue(int customerId)
{
NavManager.NavigateTo($"/customerissue/{customerId}")
}
<tbody>
@foreach (var customer in customers)
{
<tr>
<td>@customer.Id / @customer.LastName / @customer.Email</td>
<RadzenButton Text="Add issue" ButtonStyle="Radzen.ButtonStyle.Secondary" Click="()=>GoToCustomerIssue(customer)"/>
<RadzenButton Text="Edit" ButtonStyle="Radzen.ButtonStyle.Secondary" />
<RadzenButton Text="Delete" ButtonStyle="Radzen.ButtonStyle.Secondary" />
</tr>
}
</tbody>
@if (SelectedCustomer is not null){
<CustomerIssue Customer=SelectedCustomer />
}
@code {
List<customer> customers {get; set;} // or whatever your customer class is called
customer SelectedCustomer {get; set;}
GoToCustomerIssue(customer clickedCustomer){
SelectedCustomer = clickedCustomer;
}
}
@code{
[Parameter]
public customer Customer {get; set;}
}