【发布时间】:2021-04-10 12:07:24
【问题描述】:
我还是 Blazor 和 c# 的新手
我正在努力在剃须刀页面中传递一个变量(用户选择的行 ID),并将该变量用作 SQL 查询中的参数,以过滤和填充不同剃须刀页面上的列表/表格。
最初我只是使用一个静态变量,每次用户选择一行时设置它,但是当多个用户与系统交互时,这会导致问题。
处理此问题的最佳方法是什么?我需要使用某种会话变量吗?
【问题讨论】:
标签: c# variables blazor razor-pages
我还是 Blazor 和 c# 的新手
我正在努力在剃须刀页面中传递一个变量(用户选择的行 ID),并将该变量用作 SQL 查询中的参数,以过滤和填充不同剃须刀页面上的列表/表格。
最初我只是使用一个静态变量,每次用户选择一行时设置它,但是当多个用户与系统交互时,这会导致问题。
处理此问题的最佳方法是什么?我需要使用某种会话变量吗?
【问题讨论】:
标签: c# variables blazor razor-pages
用最简单的形式,你可以这样做:
@page "/Customers/{CustomerId:guid}"
...
...
@code {
[Parameter]
public Guid CustomerId { get; set; }
}
但如果你有桌子,你最好检查一下this link
我相信,多亏了这一点,您可以更快、更准确地完成工作。此外,代码将更易于阅读和维护。因为在一天结束时,您将拥有一个适合特定模板的代码,如下所示:
<DataGrid TItem="Employee"
Data="@employeeList"
ReadData="@OnReadData"
TotalItems="@totalEmployees">
<DataGridCommandColumn TItem="Employee" />
<DataGridColumn TItem="Employee" Field="@nameof(Employee.Id)" Caption="#" Sortable="false" />
<DataGridColumn TItem="Employee" Field="@nameof(Employee.FirstName)" Caption="First Name" Editable="true" />
<DataGridColumn TItem="Employee" Field="@nameof(Employee.LastName)" Caption="Last Name" Editable="true" />
<DataGridColumn TItem="Employee" Field="@nameof(Employee.EMail)" Caption="EMail" Editable="true" />
<DataGridColumn TItem="Employee" Field="@nameof(Employee.City)" Caption="City" Editable="true" />
<DataGridColumn TItem="Employee" Field="@nameof(Employee.Zip)" Caption="Zip" Editable="true" />
<DataGridNumericColumn TItem="Employee" Field="@nameof(Employee.Childrens)" Caption="Childrens" Editable="true" />
<DataGridColumn TItem="Employee" Field="@nameof(Employee.Salary)" Caption="Salary" Editable="true">
<DisplayTemplate>
@($"{( context as Employee )?.Salary} €")
</DisplayTemplate>
<EditTemplate>
<NumericEdit TValue="decimal" Value="@((decimal)(((CellEditContext)context).CellValue))" ValueChanged="@(v=>((CellEditContext)context).CellValue=v)" />
</EditTemplate>
</DataGridColumn>
</DataGrid>
【讨论】: