Telerik MVC Grid ClientTemplate checkbox not displayed initially

I have a very similar problem with the mail located here: Telerik grid with checkbox - the checkbox is not displayed when the grid initially draws

Basically, I have a telerik MVC3 razor mesh with a ClientTemplate column that consists of a checkbox. When the page is loaded initially, there is no flag there - instead, I want the value of this flag to be. However, when ajax is running (e.g. grouping columns together), the checkbox is displayed without problems.

I really don't understand the solution of the thread inserted above ... so maybe this is the answer, and I just don't know how to call the grid constructor. Here is the code I have:

research.cshtml

@(Html.Telerik().Grid(Model) .Name("Grid") .DataKeys(keys => keys.Add(m => m.MessageInformation.MessageGUID)) .DataBinding(databinding => databinding.Ajax() .Select("_ViewMessages", "Results") .Update("_UpdateSelectedMessage", "Results")) .Columns(columns => { columns.Bound(o => o.MessageInformation.MessageGUID) .ClientTemplate("<input type='checkbox' id='chkMessage' name='checkedRecords' value='<#= MessageInformation.MessageGUID #>' />") .Title("Check") .Width(50) .HtmlAttributes(new { style = "text-align:center" }); columns.Bound(o => o.MessageInformation.MessageGUID).Title("ID"); columns.Bound(o => o.MessageInformation.MessageReceivedDateTime).Title("Received Date").Format("{0:d}"); columns.Bound(o => o.MessageInformation.MessageReceivedDateTime).Title("Received Time").Format("{0:t}"); columns.Bound(o => o.MessageInformation.MedVAMessageTypeString).Title("Message Type"); columns.Bound(o => o.MessageStatus).Title("Status"); columns.Command(commands => commands.Edit().ButtonType(GridButtonType.Text)).Title("Edit"); }) .Editable(editing => editing.Mode(GridEditMode.PopUp)) .Scrollable(scrolling => scrolling.Enabled(true)) .Sortable(sorting => sorting.Enabled(true)) .Pageable(paging => paging.Enabled(true)) .Filterable(filtering => filtering.Enabled(true)) .Groupable(grouping => grouping.Enabled(true)) .Footer(true) ) 

ResultsController.cs

  [GridAction] public ActionResult Research() { ViewBag.Message = "Research"; return View(DataAccess.Get_Messages()); } [GridAction] public ActionResult _ViewMessages() { ViewBag.Message = "Research"; return View(new GridModel(DataAccess.Get_Messages())); } 
+4
source share
3 answers

Initially, you are attached to the server data, so you will need a server template, as well as a client template:

 @(Html.Telerik().Grid(Model) .Name("Grid") .DataKeys(keys => keys.Add(m => m.MessageInformation.MessageGUID)) .DataBinding(databinding => databinding.Ajax() .Select("_ViewMessages", "Results") .Update("_UpdateSelectedMessage", "Results")) .Columns(columns => { columns.Bound(o => o.MessageInformation.MessageGUID) .Template(mi => { %> <input type='checkbox' id='chkMessage' name='checkedRecords' value='<%= mi.MessageGUID %>' /> %> }) .ClientTemplate("<input type='checkbox' id='chkMessage' name='checkedRecords' value='<#= MessageInformation.MessageGUID #>' />") .Title("Check") .Width(50) .HtmlAttributes(new { style = "text-align:center" }); columns.Bound(o => o.MessageInformation.MessageGUID).Title("ID"); columns.Bound(o => o.MessageInformation.MessageReceivedDateTime).Title("Received Date").Format("{0:d}"); columns.Bound(o => o.MessageInformation.MessageReceivedDateTime).Title("Received Time").Format("{0:t}"); columns.Bound(o => o.MessageInformation.MedVAMessageTypeString).Title("Message Type"); columns.Bound(o => o.MessageStatus).Title("Status"); columns.Command(commands => commands.Edit().ButtonType(GridButtonType.Text)).Title("Edit"); }) .Editable(editing => editing.Mode(GridEditMode.PopUp)) .Scrollable(scrolling => scrolling.Enabled(true)) .Sortable(sorting => sorting.Enabled(true)) .Pageable(paging => paging.Enabled(true)) .Filterable(filtering => filtering.Enabled(true)) .Groupable(grouping => grouping.Enabled(true)) .Footer(true) ) 
+6
source

Another piece of Razor: CheckBox syntax can be edited after editing a click.

 .Template( @<text> <input name="chkStatus" type="checkbox" @if(item.Status) { @:checked="checked" } disabled /> </text> ) .ClientTemplate("<input type='checkbox' name='chkStatus' value='<#= Status #>' <#=Status?'checked':''#> disabled />"); 
+1
source

The syntax of @McGarnagle does not work for me. Here is my one that works:

 .Template(@<text><input name="chkStatus" type="checkbox" @(item.Status ? "checked=\"checked\"" : "") disabled /></text>) .ClientTemplate("<input type='checkbox' name='chkStatus' value='<#= Status #>' <#=Status?'checked':''#> disabled />") 
0
source

All Articles