Ho una griglia gerarchica a due livelli che sto passando dal binding lato server all'utilizzo di ajax. L'ajax legge che entrambi i livelli di dati funzionano correttamente, tuttavia ho difficoltà a utilizzare ClientTemplate per eseguire il rendering delle colonne in base alla logica condizionale.Come utilizzare le espressioni modello client nel bind ajax di una griglia di kendo mvc?
Di seguito è riportata la versione vincolante sul lato server. Capisco che devo usare ClientTemplate ed espressioni # = # per lo stesso effetto ma sto avendo due problemi:
- Come incremento variabile 'i' per ogni riga in modo da poter usare CheckBoxFor e come i metodi HTML helper?
- Come convertire il @ per utilizzare l'espressione ClientTemplate. Si noti la logica condizionale utilizza le proprietà del modello della vista e anche proprietà dell'elemento legato (MyViewModel) con la logica condizionale utilizzando una miscela di oggetti di Modello
conversione di questo ad un'espressione sarebbe più utile.
var i = -1;
@(Html.Kendo().Grid<MyViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.Selected).Title("")
.Template(
@<text>
@{i++;}
@if (Model.Permissions.HasInsertAccess && item.Status == Status.Created)
{
<input type="hidden" name="MyViewModels.Index" value="@i" />
@Html.CheckBoxFor(m => m.MyViewModels[i].Selected)
}
</text>);
columns.Bound(c => c.Id)
.Template(@<text>@Html.HiddenFor(m => m.MyViewModels[i].Id)@item.Id</text>)
Grazie, funziona bene. Invece di usare un incremento di riga ho deciso di usare l'uid generato dalla griglia di kendo. È un peccato che il modello del client non funzioni bene con le classi html di mvc dato che ora devo scrivere il brutto html. Sai se è possibile mescolare serveride con l'associazione ajax? La prima griglia dal modello e poi quando espandi la riga per effettuare una chiamata ajax? Ho provato numerosi modi senza risultato. – David