Hi There,
Not a massive issue but its taking so much of my time now.
When I edit or add an new row the boolean values returned is always false even if the checkbox has been clicked.
When I edit or add the filter search box does not display in die drop down.
My view:
@(Html.EJ().Grid<Brokers.Models.Appointing>("gridAppointing")
.Datasource(ds => ds.Json((List<Brokers.Models.Appointing>)ViewBag.gridAdvisorDS).UpdateURL("AppointingUpdate")
.InsertURL("AppointingInsert").RemoveURL("AppointingDelete").Adaptor(AdaptorType.RemoteSaveAdaptor))
.AllowResizeToFit()
.AllowPaging()
.EditSettings(e => { e.AllowAdding().AllowDeleting().AllowEditing().EditMode(EditMode.Dialog).ShowDeleteConfirmDialog().AllowEditOnDblClick(false); })
.ClientSideEvents(c => c.ActionComplete("onComplete").ActionBegin("onBegin"))
.ToolbarSettings(toolbar =>
{
toolbar.ShowToolbar().ToolbarItems(items =>
{
items.AddTool(ToolBarItems.Add);
items.AddTool(ToolBarItems.Edit);
items.AddTool(ToolBarItems.Delete);
items.AddTool(ToolBarItems.Search);
items.AddTool(ToolBarItems.ExcelExport);
});
})
.Columns(col =>
{
col.Field("ID").IsIdentity(true).IsPrimaryKey(true).Visible(false).Add();
col.Field("FK_AdvisorID").HeaderText("Advisor").Visible(false).EditType(EditingType.Dropdown).DataSource((IEnumerable<object>)ViewData["AdvisorDS"]).Add();
col.Field("FK_ClientID").HeaderText("Client").Visible(false).EditType(EditingType.Dropdown).DataSource((IEnumerable<object>)ViewData["ClientDS"]).Add();
col.Field("Advisor.Name").HeaderText("Advisor Name").EditType(EditingType.String).Add();
col.Field("Client.Name").HeaderText("Client Name").EditType(EditingType.String).Add();
col.Field("DateForm").HeaderText("Application Date").EditType(EditingType.Datepicker).Add();
col.Field("Disclosed").HeaderText("Is Disclosed").EditType(EditingType.Boolean).Add();
col.Field("Appointed").HeaderText("Is Appointed").EditType(EditingType.Boolean).Add();
col.Field("Letter").HeaderText("Is Letter Sent").EditType(EditingType.Boolean).Add();
col.Field("Transferred").HeaderText("Is Transferred").EditType(EditingType.Boolean).Add();
col.Field("Notes").HeaderText("Notes").EditType(EditingType.String).Add();
})
)
<script type="text/javascript">
function onCompanyComplete(args) {
if (args.requestType == "beginedit" || args.requestType == "add") {
$('#gridAppointing').data("ejGrid").hideColumns(["FK_AdvisorID", "FK_ClientID"]);
$('#gridAppointing').data("ejGrid").showColumns(["Advisor.Name", "Client.Name"]);
$('#gridAppointingFK_AdvisorID').data("ejDropDownList").option("enableFilterSearch", true) $('#gridAppointingFK_ClientID').data("ejDropDownList").option("enableFilterSearch", true) }
}
function onBegin(args) {
if (args.requestType == "beginedit" || args.requestType == "add") {
$('#gridAppointing').data("ejGrid").showColumns(["FK_AdvisorID", "FK_ClientID"]);
$('#gridAppointing').data("ejGrid").hideColumns(["Advisor.Name", "Client.Name"]);
}
}
My controller:
public ActionResult Index()
{
var context = new ApplicationDbContext();
var Advisors = context.Advisors.ToList();
var AdvisorDS = new List<object>();
foreach (var item in Advisors)
{
AdvisorDS.Add(new { value = item.ID, text = item.Name + " " + item.Surname });
}
ViewBag.AdvisorDS = AdvisorDS;
var Clients = context.Clients.ToList();
var ClientDS = new List<object>();
foreach (var item in Clients)
{
ClientDS.Add(new { value = item.ID, text = item.Name + " " + item.Surname });
}
ViewBag.ClientDS = ClientDS;
return View();
}
public ActionResult AppointingInsert(Appointing value)
{
var context = new ApplicationDbContext();
try
{
value.Advisor = context.Advisors.Where(c => c.ID == value.FK_AdvisorID).FirstOrDefault();
value.Client = context.Clients.Where(c => c.ID == value.FK_ClientID).FirstOrDefault();
context.Appointings.Add(value);
context.SaveChanges();
}
catch (System.Exception)
{
throw;
}
return Json(value, JsonRequestBehavior.AllowGet);
}
public ActionResult AppointingDelete(int key)
{
var context = new ApplicationDbContext();
context.Appointings.RemoveRange(context.Appointings.Where(c => c.ID == key));
context.SaveChanges();
return Json(context.Appointings.Where(c => c.FK_ClientID == key).ToList(), JsonRequestBehavior.AllowGet);
}
public ActionResult AppointingUpdate(Appointing value)
{
var context = new ApplicationDbContext();
context.Entry(value).State = System.Data.Entity.EntityState.Modified;
context.SaveChanges();
return Json(value, JsonRequestBehavior.AllowGet);
}
all i need is that the boolean fields will reflect true/false on the insert action, at the moment they are always false.
i got the search filter on the drop down to work on another form, not on this one