Hello I have a page with a listview, when an item is selected, 5 grid are filtered, nested on each grid is a subgrid (in the images attached you could see it better) in this subgrid one column has a combobox, I need that when an item on the listview is selected this combobox rebind the data. But it only happens when the method is called when the page is loaded, even the method is called and executed with out errors the combobox remains with the original data.
Below is the combobox:
@model ContabilidadSinLios.Models.CatalogoCuentasViewModel
@(Html.Kendo().ComboBox()
.Name("CatalogoCuentas")
.DataValueField("CatalogoCuentaId")
.DataTextField("Nombre")
.Height(100)
.BindTo((System.Collections.IEnumerable)ViewData["catalogos"])
.HtmlAttributes(new { style = "width: 330px !important; font-size: 11px; " })
.Suggest(true)
.MinLength(1)
.Filter(FilterType.Contains)
)
And here is the one of the grids:
@(Html.Kendo().Grid<
EgresosViewModel
>()
.Name("cdfie")
.Scrollable(s => s.Enabled(true).Height("auto"))
.AutoBind(false)
.Columns(columns =>
{
columns.Template(t => { })
.ClientTemplate("#=UUID#")
.Title("UUID").Hidden(true)
.Width(100);
columns.Bound(f => f.EstatusSAT).Filterable(false).Title("Estatus SAT").Width(80);
columns.Bound(f => f.FechaEmision).Title("Fecha Emisión").Filterable(false).Format("{0:d}").Width(100);
columns.Bound(f => f.RFCReceptor).Hidden(true);
columns.Bound(f => f.RFCEmisor).Title("RFC Emisor").Width(120);
columns.Bound(f => f.NombreEmisor).Title("Nombre Emisor").Width(250);
columns.Bound(f => f.SubTotal).Filterable(false).Width(80).Format("{0:c}");
columns.Bound(f => f.Descuento).Filterable(false).Width(80).Format("{0:c}");
columns.Bound(f => f.IVA16).Title("IVA 16%").Filterable(false).Width(80).Format("{0:c}");
columns.Bound(f => f.IEPS).Filterable(false).Width(80).Format("{0:c}");
columns.Bound(f => f.RetenidoIVA).Filterable(false).Title("IVA Retenido").Width(120).Format("{0:c}");
columns.Bound(f => f.RetenidoISR).Filterable(false).Title("ISR Retenido").Width(120).Format("{0:c}");
columns.Bound(f => f.Total).Filterable(true).Width(120).Format("{0:c}");
columns.Bound(f => f.MetodoPago).Filterable(false).Width(120).Title("Método de Pago");
})
.Events(e =>
{
e.DataBound("onDataBoundEgreso");
})
.Pageable(pageable => pageable.Refresh(true))
.Sortable()
.Selectable()
.Navigatable()
.Resizable(resize => resize.Columns(true))
.ClientDetailTemplateId("ConceptosEgresos_DetailTemplate")
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(15)
.Model(m =>
{
m.Id(f => f.UUID);
m.Field(f => f.UUID).Editable(false);
m.Field(f => f.FechaEmision).DefaultValue(DateTime.Today);
})
.Events(events => events.Error("error_handler"))
.Sort(s => s.Add(f => f.FechaEmision).Descending())
.Read(read => read.Action("CFDISEgreso_Read", "SinLios"))
)
)
<
script
id
=
"ConceptosEgresos_DetailTemplate"
type
=
"text/x-kendo-tmpl"
>
<
h4
>Detalle para CFDI \\##=UUID# </
h4
>
@(Html.Kendo().Grid<
ConceptosViewModel
>()
.Name("order_details#=UUID#")
.Columns(columns =>
{
columns.Command(command =>
{
command.Edit().UpdateText("Actualizar").Text("Editar");
}).Width(100);
columns.Bound(f => f.Id).Hidden(true);
columns.Bound(f => f.Cantidad).Width(50);
columns.Bound(f => f.ValorUnitario).Format("{0:c}").Width(80);
columns.Bound(f => f.Descripcion).Encoded(false)
.Title("Descripción").Filterable(false).Width(250);
columns.Bound(f => f.Importe).Format("{0:c}").Width(80);
columns.Bound(f => f.Deducible).ClientTemplate("<
span
> \\#= Deducible ? 'Si' : 'No' \\#</
span
>")
.Title("Deducible").Width(80);
columns.Bound(f => f.DeducibleAnual).ClientTemplate("<
span
> \\#= DeducibleAnual ? 'Si' : 'No' \\#</
span
>")
.Title("Deducible Anual").Width(100);
columns.Bound(f => f.MontoDeducible).Title("Monto Deducible").Format("{0:c}").Width(100);
columns.Bound(f => f.CatalogoCuentaId).ClientTemplate("\\#=CatalogoCuentas.Nombre\\#").Title("Catálogo de Cuentas")
.Filterable(false).Width(200).ClientFooterTemplate("Total Deducible:");
columns.Bound(f => f.CatalogoCuentas.Nombre);
//.Hidden(true);
columns.Template(f => new { })
.Title("Total Deducible")
.ClientTemplate("\\#=kendo.toString(GetOrderItemPrice(data), \"c\")\\#")
.ClientFooterTemplate("<
span
name
=
'sum'
></
span
>").Width(120);
columns.Bound(f => f.IVA16).ClientTemplate("<
span
> \\#= IVA16 ? 'Si' : 'No' \\#</
span
>")
.Filterable(false).Title("IVA 16%").Width(80);
columns.Bound(f => f.IVA0).ClientTemplate("<
span
> \\#= IVA0 ? 'Si' : 'No' \\#</
span
>")
.Filterable(false).Title("IVA 0%").Width(80);
columns.Bound(f => f.IVAExento).ClientTemplate("<
span
> \\#= IVAExento ? 'Si' : 'No' \\#</
span
>")
.Filterable(false).Title("Exento IVA").Width(80);
columns.Bound(f => f.VisiblePara).Width(80);
})
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("ConceptosEditor"))
.Events(e =>
{
e.DataBound("onOrderDetailsEgresoDataBound");
})
.Selectable()
.Pageable(pageable => pageable.Refresh(true))
.Navigatable()
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(concepto => concepto.Id);
model.Field(concepto => concepto.Id).Editable(false);
model.Field(concepto => concepto.Descripcion).Editable(false);
model.Field(concepto => concepto.Unidad).Editable(false);
model.Field(concepto => concepto.Cantidad).Editable(false);
model.Field(concepto => concepto.UUID).Editable(false);
model.Field(concepto => concepto.IVA16).DefaultValue(false);
model.Field(concepto => concepto.IVA0).DefaultValue(false);
model.Field(concepto => concepto.IVAExento).DefaultValue(false);
model.Field(concepto => concepto.Importe).Editable(true);
model.Field(concepto => concepto.ValorUnitario).Editable(false);
model.Field(concepto => concepto.CatalogoCuentaId).Editable(true);
model.Field(concepto => concepto.CatalogoCuentas).DefaultValue(ViewData["catalogos"] as CatalogoCuentasViewModel).Editable(true);
model.Field(concepto => concepto.Ano).Editable(true);
model.Field(concepto => concepto.Mes).Editable(true);
model.Field(concepto => concepto.VisiblePara).Editable(true);
})
.Events(events => events.Error("error_handler")
.Sync("sync_handler"))
.Read(read => read.Action("Conceptos_Read", "SinLios", new { UUID = "#=UUID#", Ano = "#=Ano#", Mes = "#=Mes#", VisiblePara = "#=RFCReceptor#" }))
.Update(update => update.Action("UpdateConcepto", "SinLios")))
.ToClientTemplate()
)
</
script
>
And the code for populate the catalogo de cuentas:
public
void
PopulateCatalogoCuentas(
string
RFC)
{
IOrderedEnumerable<CatalogoCuentasViewModel> catalogos = _context.CatalogoDeCuentasRFC(RFC)
.Select(c =>
new
CatalogoCuentasViewModel
{
CatalogoCuentaId = c.CatalogoCuentaId,
Nombre = c.Nombre +
" - "
+ c.CatalogoCuentaId
}).ToList()
.OrderBy(e => e.Nombre);
bool
existe = (from item
in
catalogos select item).Count() > 0;
if
(existe)
{
ViewData[
"catalogos"
] = catalogos;
ViewData[
"defaultCatalogo"
] = catalogos.FirstOrDefault();
}
else
{
ViewData.Clear();
IOrderedEnumerable<CatalogoCuentasViewModel> todoCatalogo = _catalogoCuentasRepository.FindAll()
.Select(c =>
new
CatalogoCuentasViewModel
{
CatalogoCuentaId = c.CatalogoCuentaId,
Nombre = c.Nombre +
" - "
+ c.CatalogoCuentaId
})
.OrderBy(e => e.Nombre);
ViewData[
"catalogos"
] = todoCatalogo;
ViewData[
"defaultCatalogo"
] = todoCatalogo.First();
}
}