when I UPDATE an existing entity it all works fine, the problem is only when I CREATE\INSERT.
Here is the code below please help
<div>
@*Phone Carrier*@
@(Html.Kendo().Grid<OSH.Domain.Models.PhoneCarrier.AppPhoneCarrierItem>()
.Name("CarrierGrid")
.Columns(columns =>
{
columns.Bound(e => e.PhoneCarrierId).Width(350).Hidden();
columns.Bound(e => e.PhoneCarrier).Width(350);
columns.Command(command => { command.Edit().Text(" "); command.Destroy().Text(" "); });
})
.ToolBar(toolbar => { toolbar.Create().Text("Add New Carrier"); })
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Sortable()
.Pageable()
.Scrollable()
.ColumnMenu()
.Filterable()
.HtmlAttributes(new { style = "height:420px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Model(model => model.Id(p => p.PhoneCarrierId))
.Read(read => read.Action("readCarrier", "Admin"))
.Create(update => update.Action("CreateCarrier", "Admin"))
.Update(update => update.Action("EditCarrier", "Admin"))
.Destroy(update => update.Action("DeleteCarrier", "Admin"))
.Events(events => events.Error("onError3").Sync("sync_handler"))
)
.Pageable(x => x.PageSizes(new List<object> { 5, 10, 15, 20, "all" }).Refresh(true))
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
)
</div>
<div>
@*Phone Number*@
@(Html.Kendo().Grid<OSH.Domain.Models.PhoneNumber.AppPhoneNumberItem>()
.Name("PhoneNumberGrid")
.Columns(columns =>
{
columns.Bound(e => e.PhoneNumber);
columns.Bound(e => e.Description);
//columns.Bound(e => e.PhoneNumberTypeId);
//columns.Bound(e => e.PhoneCarrierId);
columns.ForeignKey(e => e.PhoneNumberTypeId, (System.Collections.IEnumerable)ViewData["PNType"], "PhoneNumberTypeId", "PhoneNumberType")
.Title("Phone Number Type");
columns.ForeignKey(e => e.PhoneCarrierId, (System.Collections.IEnumerable)ViewData["PhoneCarrier"], "PhoneCarrierId", "PhoneCarrier")
.Title("Phone Carrier");
columns.ForeignKey(e => e.LocationId, (System.Collections.IEnumerable)ViewData["Location"], "LocationId", "LocationName")
.Title("Location");
//columns.Bound(e => e.LocationId);
columns.Command(command => { command.Edit().Text(" "); command.Destroy().Text(" "); });
})
.ToolBar(toolbar => { toolbar.Create(); })
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Sortable()
.Pageable()
.Scrollable()
.ColumnMenu()
.Filterable()
.HtmlAttributes(new { style = "height:420px;", data_value_primitive = "true" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Model(model => model.Id(p => p.PhoneCarrierId))
.Read(read => read.Action("readPhoneNumber", "Admin"))
.Create(update => update.Action("CreatePhoneNumber", "Admin"))
.Update(update => update.Action("EditPhoneNumber", "Admin"))
.Destroy(update => update.Action("DeletePhoneNumber", "Admin"))
.Events(events => events.Error("error_handler").Sync("sync_handler"))
)
.Pageable(x => x.PageSizes(new List<object> { 5, 10, 15, 20, "all" }).Refresh(true))
.Events(e => e.Edit("onPhoneNumberGridEdit").Save("onSavingPhoneNumber"))
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
)
</div>
</div>
function onSelect(e) {
var x = e.item;
var tabSelectedIndex = $(x).index();
if (tabSelectedIndex == 2) {
$.ajax({
url: '@Url.Action("UpdateNewDataType", "Admin")',
cache: false,
type: 'GET',
success: function (Newdata) {
var data = [];
for (var i = 0; i < Newdata.length; i++) {
data.push({ text: Newdata[i].PhoneNumberType, value: Newdata[i].PhoneNumberTypeId });
}
var grid = $("#PhoneNumberGrid").data("kendoGrid");
grid.columns.filter(function (item) {
return item.field === "PhoneNumberTypeId";
}).forEach(function (item) {
item.values = data;
});
grid.setOptions({ columns: grid.columns, toolbar: [{ name: "create", text: "Add Phone Number" }] });
grid.refresh();
}
});
$.ajax({
url: '@Url.Action("UpdateNewDataCarrier", "Admin")',
cache: false,
type: 'GET',
success: function (Newdata) {
var data = [];
for (var i = 0; i < Newdata.length; i++) {
data.push({ text: Newdata[i].PhoneCarrier, value: Newdata[i].PhoneCarrierId });
}
var grid = $("#PhoneNumberGrid").data("kendoGrid");
grid.columns.filter(function (item) {
return item.field === "PhoneCarrierId";
}).forEach(function (item) {
item.values = data;
});
grid.setOptions({ columns: grid.columns, toolbar: [{ name: "create", text: "Add Phone Number" }] });
grid.refresh();
}
});
}
}
function onSavingPhoneNumber(e) {
$("#PhoneNumberGrid tbody [data-role=dropdownlist]").each(function () {
var ddl = $(this).data("kendoDropDownList");
if (ddl) {
var v = ddl.value();
var p = ddl.list.attr('id').replace('-list', '');
if (p) e.model.set(p, v);
}
})
----------------------------------------------------------------------------------------------------------------------------
Controller
public ActionResult EditPhoneNumber([DataSourceRequest] DataSourceRequest request, AppPhoneNumberItem AppPhoneNumberItem)
{
PhoneNumberUpdateResponse response = new PhoneNumberUpdateResponse();
if (AppPhoneNumberItem != null && ModelState.IsValid)
{
PhoneNumberRequest request2 = new PhoneNumberRequest();
request2.PhoneNumberId = AppPhoneNumberItem.PhoneNumberId;
request2.PhoneNumber = AppPhoneNumberItem.PhoneNumber;
request2.Description = AppPhoneNumberItem.Description;
request2.PhoneNumberTypeId = AppPhoneNumberItem.PhoneNumberTypeId;
request2.PhoneCarrierId = AppPhoneNumberItem.PhoneCarrierId;
request2.LocationId = AppPhoneNumberItem.LocationId;
response = phoneNumberApi.UpdatePhoneNumber(request2);
if (response.Error != null)
{
ErrorLogRequest errorReq = new ErrorLogRequest()
{
LogDate = DateTime.Now,
LogMethod = "UpdatePhoneNumber",
LogPage = "Admin",
LogPerson = User.Identity.Name,
LogInfo = response.Error.ErrorCode + " " + response.Error.ErrorMessage + " " + response.Error.ExceptionObject.Message
};
apiErrorLog.InsertErrorLog(errorReq);
}
}
BindViewBag();
return Json(new[] { response }.ToDataSourceResult(request, ModelState));
}
public void BindViewBag()
{
ViewData["PhoneCarrier"] = PhoneCarrier;
ContactTypeRequest request4 = new ContactTypeRequest();
var ContactType = contactTypeApi.GetContactTypeList(request4).data.Select(p => new AppContactTypeItem()
{
ContactTypeId = p.ContactTypeItem.ContactTypeId,
ContactType = p.ContactTypeItem.ContactType
});
}