Hi All,
In my view I have:
when the view initially shows my dropdown is empty. when the user places a value in group then this will cause a partial update to happen:Code:<tr> <td>@Html.LabelFor(model => model.Group, null, null, null)</td> <td>@Html.EditorFor(model => model.Group)</td> <td> </td> </tr> <tr> <td>@Html.LabelFor(x => x.VehicleTypeId, null, null, null)</td> <td>@Html.DropDownListFor(x => x.VehicleTypeId, new SelectList(Model.VehicleTypes, "Id", "Description"), "-- Select --")</td> <td> </td> </tr>
my controller has:Code:$("#Group").change(function () { partialUpdate(); }); function partialUpdate() { var polId = $("#PolicyZoneID").attr("value"); var secId = $("#SectionID").attr("value"); var riskId = $("#RiskID").attr("value"); var riskTypeId = $("#RiskTypeID").attr("value"); var group = $("#Group").attr("value"); var jSonData = '{ "policyZoneId" : "' + polId + '","sectionId" : "' + secId + '","riskId" : "' + riskId + '","riskTypeId" : "' + riskTypeId + '","group" : "' + group + '"}'; $.ajax({ url: window.rootDir + 'RoadRisk/PrivateCarsReload', type: 'POST', data: jSonData, dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { //remove existing contents from the dropdown //and update with new contents. }, error: function (data) { alert(data); } }); }
this will return a struct in the form:Code:[HttpPost] public JsonResult PrivateCarsReload(int policyZoneId, int sectionId, int riskId, int riskTypeId, int group) { return Json(RoadRiskService.UpdatePrivateCarsFromAjax(policyZoneId, sectionId, riskId, riskTypeId, group), JsonRequestBehavior.DenyGet); }
where:Code:public struct PrivateCarsRiskJsonResults { public IEnumerable<PointsSelectListItemWrapper> VehicleTypes; }
How do I populate my dropdown list and how do I keep it in sync on the model? ThanksCode:public class PointsSelectListItemWrapper { public Int64 Id { get; set; } public string Description { get; set; } public Int32 Points { get; set; } public bool Selected { get; set; } public Int32? MinGroup { get; set; } public Int32? MaxGroup { get; set; } }


Reply With Quote

