Trying to use combox inside grid for edit and add option. I have added the comboBox but doesn't update. My code is as below.
------------------------------------
Partial View
-------------------------------------
@model PFLMMSBModel
<script type="text/javascript">
function onEdit(e) {
$(e.form).find('#Make').data('tComboBox').select(function (dataItem) {
return dataItem.Value == e.dataItem['MAKE_ID'];
});
$(e.form).find('#Model').data('tComboBox').select(function (dataItem) {
return dataItem.Value == e.dataItem['MODEL_ID'];
});
}
</script>
@(Html.Telerik().Grid<PFLMMSBModel>()
.Name("PFLMMSB")
.Sortable(sorting => sorting.Enabled(true))
.Filterable(filtering => filtering.Enabled(true))
.Pageable(paging => paging.Enabled(true).PageSize(13)).Footer(true)
.DataBinding(dataBinding => dataBinding.Ajax().Select("_PFLMMSB", "ReferenceFiles")
.Update("_PFLMMSBEdit", "ReferenceFilesEdit"))
.Reorderable(reorder => reorder.Columns(true))
.Columns(columns =>
{
columns.Bound(s => s.MAKE_ID).Title("Make").ClientTemplate("<#=MAKE_DESCRIPTION #>");
columns.Bound(s => s.MODEL_ID).Title("Model").ClientTemplate("<#=MODEL_DESCRIPTION #>");
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.Text).HtmlAttributes(new { @style = "color: #333;" });
}).Width(200).Title("Commands");
})
.Editable(editing => editing.Mode(GridEditMode.InLine))
.ClientEvents(events => events
.OnEdit("onEdit")
).HtmlAttributes(new { @style = "color: black;" })
)
--------------------------------------------------------------------------------------
Editor Templates
----------------
@(Html.Telerik().ComboBox()
.Name("Make")
.AutoFill(true)
.BindTo(new SelectList((System.Collections.IEnumerable)ViewBag.Makes, "MAKE_ID", "MAKE_DESCRIPTION"))
.Filterable(filtering =>
{
filtering.FilterMode(AutoCompleteFilterMode.StartsWith);
})
.HighlightFirstMatch(true)
)
@(Html.Telerik().ComboBox()
.Name("Model")
.AutoFill(true)
.BindTo(new SelectList((System.Collections.IEnumerable)ViewBag.Models, "MODEL_ID", "MODEL_DESCRIPTION"))
.Filterable(filtering =>
{
filtering.FilterMode(AutoCompleteFilterMode.StartsWith);
})
.HighlightFirstMatch(true)
)
------------------------------------------------------
Controller
--------------
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult _PFLMMSBEdit(int Id, int Make, int Model)
{
//Save data first
EditReferenceFiles _editReferenceFiles = new EditReferenceFiles();
PFLMMSBModel _mmsb = _editReferenceFiles.PFLMMSBEdit(Id).First();
_mmsb.MAKE_ID = Make;
_mmsb.MODEL_ID = Model;
TryUpdateModel(_mmsb);
if (_editReferenceFiles.PFLMMSBSave(Id, _mmsb))
{
//render the save data again
ReferencesFiles _referencesFiles = new ReferencesFiles();
var _pFLMMSBEdit = _referencesFiles.MMSB();
return PartialView(new GridModel { Data = _pFLMMSBEdit });
}
else
{
return Json(new
{
Success = false
});
}
}
---------------------------------------------
model
--------------------
[MetadataType(typeof(PFLMMSBModel))]
public class PFLMMSBModel
{
public int MMSB_ID { get; set; }
public string MMSB_USER_CODE { get; set; }
public string MMSB_DESCRIPTION { get; set; }
[UIHint("_Make"), Required]
public int? MAKE_ID { get; set; }
public string MAKE_USER_CODE { get; set; }
public string MAKE_DESCRIPTION { get; set; }
[UIHint("_Model"), Required]
public int? MODEL_ID { get; set; }
public string MODEL_USER_CODE { get; set; }
public string MODEL_DESCRIPTION { get; set; }
--------------------------------------------------------------
public List<PFLMMSBModel> PFLMMSBEdit(Int32 Id)
{
var context = new AUSFLEETEntities();
{
var _mmsb = from m in context.PFL_MMSB_VIEW
select new PFLMMSBModel
{
MMSB_ID = m.MMSB_ID,
MMSB_USER_CODE = m.MMSB_USER_CODE,
MMSB_DESCRIPTION = m.MMSB_DESCRIPTION,
MAKE_ID = m.MAKE_ID,
MAKE_USER_CODE = m.MAKE_USER_CODE,
MAKE_DESCRIPTION = m.MAKE_DESCRIPTION,
MODEL_ID = m.MODEL_ID,
MODEL_USER_CODE = m.MODEL_USER_CODE,
MODEL_DESCRIPTION = m.MODEL_DESCRIPTION
};
return _mmsb.ToList();
}
}
public bool PFLMMSBSave(Int32 Id, PFLMMSBModel _PFLMMSBModel)
{
using (var context = new AUSFLEETEntities())
{
try
{
var _mmsb = context.PFL_MMSB_VIEW.Where(m => m.MMSB_ID == Id).First();
_mmsb.MMSB_ID = _PFLMMSBModel.MMSB_ID;
_mmsb.MMSB_USER_CODE = _PFLMMSBModel.MMSB_USER_CODE;
_mmsb.MMSB_DESCRIPTION = _PFLMMSBModel.MMSB_DESCRIPTION;
_mmsb.MAKE_ID = _PFLMMSBModel.MAKE_ID;
_mmsb.MAKE_USER_CODE = _PFLMMSBModel.MAKE_USER_CODE;
_mmsb.MAKE_DESCRIPTION = _PFLMMSBModel.MAKE_DESCRIPTION;
_mmsb.MODEL_ID = _PFLMMSBModel.MODEL_ID;
_mmsb.MODEL_USER_CODE = _PFLMMSBModel.MODEL_USER_CODE;
_mmsb.MODEL_DESCRIPTION = _PFLMMSBModel.MODEL_DESCRIPTION;
context.SaveChanges();
return true;
}
catch (Exception ex)
{
string error = ex.Message;
return false;
}
}
}