我是Blazor的新手,我正在尝试创建一个可编辑的数据网格。我有一列需要下拉列表,当我单击该项时,它应该会下拉列表。我有这个工作,但是,当我点击它时,它不会保持选定的值。我只是保持默认值。有办法做到这一点吗?
我的数据网格列:
<DataGridColumn TItem="CarTable" Field="@nameof(CarTable.ManualOrAutomatic)" Caption="Status" Editable >
<EditTemplate>
<Dropdown Visible="true" >
<DropdownToggle>
Select transmission
</DropdownToggle>
<DropdownMenu>
<DropdownItem>Manual</DropdownItem>
<DropdownDivider />
<DropdownItem>Automatic</DropdownItem>
</DropdownMenu>
</Dropdown>
</EditTemplate>
</DataGridColumn>
EditTemplate
级联一个CellEditContext
对象,可用于更新单元格的值。点击DropdownItem
时需要设置CellEditContext.CellValue
:
<Dropdown Visible="true">
<DropdownToggle>
@(!string.IsNullOrEmpty((string)context.CellValue) ? context.CellValue : "Select transmission")
</DropdownToggle>
<DropdownMenu>
<DropdownItem Clicked="@(() => context.CellValue = "Manual")">Manual</DropdownItem>
<DropdownDivider />
<DropdownItem Clicked="@(() => context.CellValue = "Automatic")">Automatic</DropdownItem>
</DropdownMenu>
</Dropdown>
假定ManualOrAutomatic属性为字符串。如果是其他类型,则相应地更新代码。
有关DataGrid单元格模板的详细信息:https://blazorise.com/docs/extensions/datagrid/templates