Hi,
I implemented a master detail data grid. I am adding a new row to the master data grid and displays on the grid without any problems but when I try to add a record to the detail I am having trouble displaying it on the grid.
Here is the adding record to the master:
private async Task OnCreateRow(OrderDto? order)
{
if (order != null)
{
orderMap = new Order();
Mapper.Map(order, orderMap);
var addedOrder = await AddOrderUseCase.ExecuteAsync(orderMap, user);
Mapper.Map(addedOrder, order);
await _grid.UpdateRow(order);
}
}
And here is the detail which is not displayed on the grid unless I refresh the page. I tried reloading the grid but no luck.
private async Task OnCreateRowDetail(OrderDetailDto? orderDetail)
{
if (orderDetail != null)
{
orderDetailMap = new OrderDetail();
Mapper.Map(orderDetail, orderDetailMap);
var addedOrderDetail = await AddOrderDetailUseCase.ExecuteAsync(orderDetailMap);
Mapper.Map(addedOrderDetail, orderDetail);
await _grid.UpdateRow(orderDetail.OrderDto);
await _gridDetail.UpdateRow(orderDetail);
//_orders = await ViewAllOrdersUseCase.ExecuteAsync(user);
//await _grid.UpdateRow(orderDetail.OrderDto);
//await _gridDetail.Reload();
//await _grid.Reload();
}
}
Here is the detail grid:
<RadzenDataGrid @ref="_gridDetail" AllowFiltering="@(_detailToInsert == null)" AllowPaging="true" PageSize="15" AllowSorting="@(_detailToInsert == null)" Data="@order.OrderDetailsDto"
TItem="OrderDetailDto" EditMode="DataGridEditMode.Multiple" RowUpdate="@OnUpdateRowDetail" RowCreate="@OnCreateRowDetail" AllowColumnResize="true"
AllowColumnPicking="true" ShowPagingSummary="true" ColumnWidth="150px" Density="Density.Compact">
And no problem on updating details:
private async Task OnUpdateRowDetail(OrderDetailDto orderDetail)
{
if (orderDetail == _detailToInsert)
{
_detailToInsert = null;
}
if (orderDetail != null)
{
orderDetailMap = new OrderDetail();
Mapper.Map(orderDetail, orderDetailMap);
var updatedOrderDetail = await EditOrderDetailUseCase.ExecuteAsync(orderDetailMap);
Mapper.Map(updatedOrderDetail, orderDetail);
}
}