customize create() in Kendo Toolbar

Asked

Viewed 141 times

1

I need to customize the Create button of Kendo UI Toolbar (the one that creates a new line to add values) so that it creates a new line to each object in an array, which comes from another preselected grid

 @(Html.Kendo().Grid<Inventario.Web.ViewModel.GeraAtividadeGridViewModel>().Name("GridAtividade")
                    .HtmlAttributes(new { data_agrupamento = false })
                    .DataSource(datasource =>

                       datasource.Ajax().PageSize(20)
                          .Model(x =>
                          {
                              x.Id(p => p.SeqAtividade);
                              x.Field(p => p.DtaInicioATV).Editable(false);
                              x.Field(p => p.SeqLote).Editable(false);
                              x.Field(p => p.Atividade).Editable(false);
                              x.Field(p => p.Situacacao).Editable(false);
                              x.Field(p => p.NomeConferente).Editable(false);


                          })
                            .Events(events => events.Error(@<text>function(e) { gridErrorHandler(e, $("#GridAtividade")); }</text>))
                            .Read(read => read.Action("GetGridDataAtividades", "GeraAtividadeRFInventario").Data("filtrosAdicionais"))
                          .Update(up => up.Action("editaAtividade", "GeraAtividadeRFInventario").Data("filtrosAdicionais"))
                          .Create(create => create.Action("AdicionaEvento", "ContratoEventos").Data("filtrosAdicionais"))

                            )
                    .Events(e => {
                        e.Edit("onEdit");
                        e.DataBound("onDataBound");
                    })
                    .Columns(columns =>
                           {
                               columns.Bound(c => c.SeqLote).Title("Numero Lote");
                               columns.Bound(c => c.Atividade).Title("Atividade").Width(50);
                               columns.Bound(c => c.Descricao).Title("Descrição").Width(100);
                               columns.Bound(c => c.DtaInicioATV).Title("Data atividade").Format("{0:dd/MM/yyyy}").Width("30");
                               columns.Bound(c => c.Situacacao).Title("Status").Width(20);
                               columns.Bound(c => c.SeqUsuario).Visible(false);
                               columns.Bound(c => c.NomeConferente).Title("Conferente").Width(100);
                               columns.Bound(c => c.PermiteExclusao).Title("Permite Excluir Atividade")
                                   .HeaderTemplate("<input type=\"checkbox\" class=\"k-grid-seleciona-todos-atividade\"  />")
                                   .ClientTemplate("<input type='checkbox' # if(data.PermiteExclusao){#this.checked = 'true'# }#>").Width(10);
                           })
                    .ToolBar(toolBar =>
                      {
                          toolBar.Create().Text("Nova Atividade");
@*aqui eu preciso que ele adcione uma linha nova no grid a cada item em um array*@
                      })
                  .Editable(editable => editable.Mode(GridEditMode.InLine))
                  .Pageable()
                  .Sortable()
                  .Filterable()
                  .Groupable()



                )

1 answer

0

Hello, an alternative is to use Kendo’s Edit event, loop your array and create a row for each item.

function grid_edit(e) {
  if (e.model.isNew()) {
    for (i = 0; i < array.length; i++) { 
      var grid = $("#grid").data("kendoGrid");
      grid.addRow();
    }
  } 
} 

Browser other questions tagged

You are not signed in. Login or sign up in order to post.