DataGrid Expand Row on LoadData

Hi

Is there a way to expand a row after LoadData? What i'm looking for is after insert/update a record inside a DataGrid expanded row i would like to show the row the were affected.

You have hierarchical nested grids and you need to refresh the child grid? Can you clarify how everything is populated in your case?

See my code below

<RadzenGrid ref="grid0" AllowFiltering="true" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive" 
                            AllowPaging="false" AllowSorting="true" Count="DescEmpreendimentos.Count" Data="DescEmpreendimentos" TItem="DescEmpreendimento">
                    <Template Context="emp">
                        <RadzenTabs>
                            <Tabs>
                                <RadzenTabsItem Text="Detalhes">
                                    <RadzenCard>
                                        <div class="row">
                                            <div class="col-md-6">
                                                <b>Nome Fantasia:</b>
                                                <div>emp.NomeFantasia</div>
                                            </div>
                                            <div class="col-md-6">
                                                <b>Descrição Atividade:</b>
                                                <div>emp.DescAtiv</div>
                                            </div>
                                        </div>
                                        <div class="row">
                                            <div class="col-md-6">
                                                <b>Endereço:</b>
                                                <div>emp.Endereco</div>
                                            </div>
                                            <div class="col-md-2">
                                                <b>Número:</b>
                                                <div>emp.Numero</div>
                                            </div>
                                            <div class="col-md-4">
                                                <b>Complemento:</b>
                                                <div>emp.Complemento</div>
                                            </div>
                                        </div>
                                        <div class="row">
                                            <div class="col-md-3">
                                                <b>CEP:</b>
                                                <div>emp.CEP</div>
                                            </div>
                                            <div class="col-md-3">
                                                <b>Bairro:</b>
                                                <div>emp.Bairro</div>
                                            </div>
                                            <div class="col-md-3">
                                                <b>Cidade:</b>
                                                <div>emp.Cidade</div>
                                            </div>
                                            <div class="col-md-3">
                                                <b>Telefone:</b>
                                                <div>(emp.DDD) emp.Telefone</div>
                                            </div>
                                        </div>
                                        <div class="row">
                                            <div class="col-md-2">
                                                <b>Área Total:</b>
                                                <div>emp.AreaTotal m²</div>
                                            </div>
                                            <div class="col-md-2">
                                                <b>Núm. Func.:</b>
                                                <div>emp.NumFunc</div>
                                            </div>
                                        </div>
                                    </RadzenCard>
                                </RadzenTabsItem>
                                <RadzenTabsItem Text="Formulários">
                                    <RadzenButton Icon="add_circle_outline" style="margin-bottom: 10px" Text="Inserir" Click="(() => Button1Click(emp.ID))">
                                    </RadzenButton>
                                    <RadzenGrid AllowFiltering="true" FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive" AllowSorting="true" AllowPaging="false" Data="emp.Formularios.OrderByDescending(x => x.Ano).ThenByDescending(x => x.Revisao).ToList()" TItem="Formulario">
                                        <Template Context="formTable">
                                            <RadzenTabs>
                                                <Tabs>
                                                    <RadzenTabsItem Text="Resíduos Perigoso">
                                                        if (formTable.DataEnvio == null)
                                                        {
                                                            <RadzenButton Icon="add_circle_outline" style="margin-bottom: 10px" Text="Inserir" Click="(() => ButtonResInsertClick(formTable.ID, ClassificacaoResiduo.Perigoso))">
                                                            </RadzenButton>
                                                        }
                                                        <ResiduosTable Residuos="formTable.Residuos.Where(x => x.Classificacao == ClassificacaoResiduo.Perigoso).ToList()"
                                                                       GridEditButtonClick="GridResiduosRevisarButtonClick" GridDeleteButtonClick="GridResiduosDeletarButtonClick" Editar="(formTable.DataEnvio == null)"></ResiduosTable>
                                                    </RadzenTabsItem>
                                                    <RadzenTabsItem Text="Resíduos Não Inertes">
                                                        if (formTable.DataEnvio == null)
                                                        {
                                                            <RadzenButton Icon="add_circle_outline" style="margin-bottom: 10px" Text="Inserir" Click="(() => ButtonResInsertClick(formTable.ID, ClassificacaoResiduo.NaoInerte))">
                                                            </RadzenButton>
                                                        }
                                                            <ResiduosTable Residuos="formTable.Residuos.Where(x => x.Classificacao == ClassificacaoResiduo.NaoInerte).ToList()"
                                                                           GridEditButtonClick="GridResiduosRevisarButtonClick" GridDeleteButtonClick="GridResiduosDeletarButtonClick" Editar="(formTable.DataEnvio == null)"></ResiduosTable>
                                                        </RadzenTabsItem>
                                                    <RadzenTabsItem Text="Resíduos Inertes">
                                                        if (formTable.DataEnvio == null)
                                                        {
                                                            <RadzenButton Icon="add_circle_outline" style="margin-bottom: 10px" Text="Inserir" Click="(() => ButtonResInsertClick(formTable.ID, ClassificacaoResiduo.Inerte))">
                                                            </RadzenButton>
                                                        }
                                                            <ResiduosTable Residuos="formTable.Residuos.Where(x => x.Classificacao == ClassificacaoResiduo.Inerte).ToList()"
                                                                           GridEditButtonClick="GridResiduosRevisarButtonClick" GridDeleteButtonClick="GridResiduosDeletarButtonClick" Editar="(formTable.DataEnvio == null)"></ResiduosTable>
                                                        </RadzenTabsItem>
                                                </Tabs>
                                            </RadzenTabs>
                                        </Template>
                                        <Columns>
                                            <RadzenGridColumn TItem="Formulario" Property="Ano" Title="Ano" Width="100px" Filterable="false" Sortable="true" TextAlign="TextAlign.Center">
                                            </RadzenGridColumn>
                                            <RadzenGridColumn TItem="Formulario" Property="Revisao" Title="Revisão" Width="100px" Filterable="false" Sortable="true" TextAlign="TextAlign.Center">
                                            </RadzenGridColumn>
                                            <RadzenGridColumn TItem="Formulario" Property="NomeResponsavel" Title="Nome Responsavel">
                                            </RadzenGridColumn>
                                            <RadzenGridColumn TItem="Formulario" Property="CPF" Title="CPF" Width="250px" Filterable="false" Sortable="false">
                                            </RadzenGridColumn>
                                            <RadzenGridColumn TItem="Formulario" Property="DataEnvio" Title="Enviado?" Width="100px" Filterable="false" Sortable="false" TextAlign="TextAlign.Center">
                                                <Template Context="dtEnvio">
                                                    ((dtEnvio.DataEnvio != null ? "Sim" : "Não"))
                                                </Template>
                                            </RadzenGridColumn>
                                            <RadzenGridColumn TItem="Formulario" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Width="150px" Title="Qtd. Residuos">
                                                <Template Context="siresModelsFormulario">
                                                    <span class="badge badge-pill badge-secondary">(siresModelsFormulario.Residuos == null ? 0 : siresModelsFormulario.Residuos.Count) </span>
                                                </Template>
                                            </RadzenGridColumn>
                                            <RadzenGridColumn TItem="Formulario" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Width="120px">
                                                <Template Context="siresModelsFormulario">
                                                    if (siresModelsFormulario.DataEnvio == null)
                                                    {
                                                        <RadzenButton title="Editar" ButtonStyle="ButtonStyle.Info" Icon="edit" Size="ButtonSize.Small" Click="((args) =>GridFormEditButtonClick(args, emp.ID, siresModelsFormulario))" onclick:stopPropagation="true">
                                                        </RadzenButton>
                                                        <RadzenButton title="Excluir" ButtonStyle="ButtonStyle.Danger" Icon="close" Size="ButtonSize.Small" Click="((args) =>GridFormDeleteButtonClick(args, siresModelsFormulario))" onclick:stopPropagation="true">
                                                        </RadzenButton>
                                                        <RadzenButton title="Enviar" ButtonStyle="ButtonStyle.Light" Icon="send" Size="ButtonSize.Small" Click="((args) =>GridFormSubmitButtonClick(args, siresModelsFormulario))" onclick:stopPropagation="true">
                                                        </RadzenButton>
                                                    }
                                                    else
                                                    {
                                                        <RadzenButton title="Revisar" ButtonStyle="ButtonStyle.Info" Icon="rate_review" Size="ButtonSize.Small" Click="((args) =>GridFormRevisarButtonClick(args, siresModelsFormulario))" onclick:stopPropagation="true">
                                                        </RadzenButton>
                                                    }
                                                </Template>
                                            </RadzenGridColumn>
                                        </Columns>
                                    </RadzenGrid>
                                </RadzenTabsItem>
                            </Tabs>
                        </RadzenTabs>
                    </Template>
                    <Columns>
                        <RadzenGridColumn TItem="DescEmpreendimento" Property="RazaoSocial" Title="Razão Social">
                        </RadzenGridColumn>
                        <RadzenGridColumn TItem="DescEmpreendimento" Property="CNPJ" Title="CNPJ" Width="30%">
                        </RadzenGridColumn>
                        <RadzenGridColumn TItem="DescEmpreendimento" Filterable="false" Sortable="false" TextAlign="TextAlign.Center" Width="70px">
                            <Template Context="siresModelsEmpreendimento">
                                <RadzenButton ButtonStyle="ButtonStyle.Info" Icon="edit" Size="ButtonSize.Small" Click="((args) =>GridEditButtonClick(args, siresModelsEmpreendimento))" onclick:stopPropagation="true">
                                </RadzenButton>
                                <RadzenButton ButtonStyle="ButtonStyle.Danger" Icon="close" Size="ButtonSize.Small" Click="((args) =>GridDeleteButtonClick(args, siresModelsEmpreendimento))" onclick:stopPropagation="true">
                                </RadzenButton>
                            </Template>
                        </RadzenGridColumn>
                    </Columns>
                </RadzenGrid>

And this is how i update the entire grid (this is just part of the code in order to get an understand)

code {
List<DescEmpreendimento> _DescEmpreendimentos { get; set; } = new List<DescEmpreendimento>();

protected List<DescEmpreendimento> DescEmpreendimentos
{
    get
    {
        return _DescEmpreendimentos;
    }
    set
    {
        if (!object.Equals(_DescEmpreendimentos, value))
        {
            _DescEmpreendimentos = value;
            InvokeAsync(() => { StateHasChanged(); });
        }
    }
}

protected RadzenGrid<DescEmpreendimento> grid0;

protected override async Task OnInitializedAsync()
{
    await BuscaInfoServidor();
}

private async Task BuscaInfoServidor()
{
    try
    {
        carregando = true;
        var emps = await http.GetFromJsonAsync<List<DescEmpreendimento>>("api/residuos/buscaempresas");            
        if (emps != null)
            DescEmpreendimentos = emps;

    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    finally
    {
        carregando = false;
    }
}

}

Some parts of the code and some variables are in portuguese sorry :slight_smile:

In my opinion if you want just a child grid to be updated after child record insert you will need separate service call that will get just child data and assign the result to the child data property of the master record.