This question is locked. New answers and comments are not allowed.
I wanted to ajax-ify my grid's sorting, paging, filtering while leaving the initial load still done via server binding. Once I switched to using GridModel<T> however my grid no longer renders correctly; the raw json data is being displayed. Can you advise what I am doing wrong?
Controller:
Search View Page (javascript removed)
Search Results User Control:
Thanks
Controller:
| //[AcceptVerbs(HttpVerbs.Post)] |
| [GridAction] |
| public ActionResult SearchAjax(PrimaryFacilitySearchViewModel model) |
| { |
| var data = PhyRepository.GetPhysicianPrimaryFacilities(ppf => |
| ppf.Provider.LastNameFirst.Contains( |
| model.ProviderName.ToUpper())); |
| var list = data.ToList(); |
| var viewModelList = Mapper.Map<IList<PhysicianPrimaryFacility>, IList<PrimaryFacilityViewModel>>(list); |
| ViewData["PpfSearchCriteria"] = model; |
| return PartialView(new GridModel<PrimaryFacilityViewModel> { Data = viewModelList }); |
| //return PartialView("PrimaryFacilitySearchResults", viewModelList); |
| } |
Search View Page (javascript removed)
| <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" |
| Inherits="System.Web.Mvc.ViewPage<TWMaintenance.ViewModels.Physician.PrimaryFacilitySearchViewModel>" %> |
| <asp:Content ID="PpfSearchHeaderContent" ContentPlaceHolderID="TitleContent" runat="server"> |
| Primary Facility |
| </asp:Content> |
| <asp:Content ID="PpfSearchScriptContent" ContentPlaceHolderID="ScriptContent" runat="server"> |
| // removed for brevity |
| </asp:Content> |
| <asp:Content ID="PpfSearchMainContent" ContentPlaceHolderID="MainContent" runat="server"> |
| <h2>Provider Primary Facility Search</h2> |
| <% |
| // don't use new {routeValue = Model}; that was resulting in null model values passed to search result control |
| using (Ajax.BeginForm("SearchAjax", "PhysicianPrimaryFacility", this.Model, |
| new AjaxOptions { UpdateTargetId = "searchResults", OnBegin = "ShowWaitCursor", OnComplete = "RevertCursor", |
| OnSuccess="SearchSuccess", LoadingElementId = "ajaxLoader" }, new { id = "ppfSearchForm" })) |
| {%> |
| <fieldset> |
| <legend>Physician Primary Facility Search</legend> |
| <div style="float: left; width: 100px; padding: 10px;"> |
| <label for="ProviderName">Provider Name</label> |
| <%= Html.TextBox("ProviderName", string.Empty, new { maxlength = 50, style = "width:100px", @class = "required_group" })%> |
| </div> |
| <div style="float: left; width: 100px; padding: 10px;"> |
| <label for="PhyId">Provider Id</label> |
| <%= Html.TextBox("PhyId", string.Empty, new { maxlength = 50, style = "width:100px", @class = "required_group" })%> |
| </div> |
| <p style="clear: left;"> |
| <br /> |
| <input type="submit" value="Search" id="ppfSearchButton" style="width:75px" /> |
| |
| <input type="button" id="clearCriteriaButton" value="Clear" style="width:75px" /> |
| </p> |
| </fieldset> |
| <div id="ajaxLoader" style="display:none"><img src="<%= Url.Content("~/Content/loading-gears.gif") %>" alt="AJAX loader" /></div> |
| <% } %> |
| <div id="searchResults"></div> |
| </asp:Content> |
Search Results User Control:
| <%@ Control Language="C#" |
| Inherits="System.Web.Mvc.ViewUserControl<Telerik.Web.Mvc.GridModel<TWMaintenance.ViewModels.Physician.PrimaryFacilityViewModel>>" %> |
| <%@ Import Namespace="TWMaintenance.ViewModels.Physician" %> |
| <% |
| Html.Telerik().Grid<PrimaryFacilityViewModel>(Model.Data) |
| .Name("List") |
| .Columns(cols => |
| { |
| cols.Add(ppf => ppf.PpfId).Title("Id"); |
| cols.Add(ppf => ppf.StartDate).Format("{0:MM/dd/yyyy}"); |
| cols.Add(ppf => ppf.EndDate); |
| cols.Add(ppf => ppf.FacilityContractFacContractId).Title("Fcon Id"); |
| cols.Add(ppf => ppf.FacilityContractName).Title("Facility Contract"); |
| cols.Add(ppf => ppf.ProviderLastNameFirst).Title("Provider"); |
| }) |
| .Pageable(settings => settings.PageSize(20)) |
| .Sortable() |
| .PrefixUrlParameters(false) |
| .Filterable() |
| .Ajax(ajax => ajax.Action("SearchAjax", "PhysicianPrimaryFacility", ViewData["PpfSearchCriteria"])) |
| .Render(); |
| %> |
Thanks