VIEW
=======================================
@(Html.Infragistics().Grid(Model.Addresses.AsQueryable())
.ID("ba_addresses")
.Width("100%")
.AutoGenerateColumns(false)
.PrimaryKey("AddressID")
.Columns(column =>
{
column.For(x => x.AddressID).HeaderText("AddressID").Width("5%");
column.For(x => x.Purpose).HeaderText("Purpose").Width("10%");
column.For(x => x.AddressDetails).HeaderText("Address Details").Width("25%");
column.For(x => x.City).HeaderText("City").Width("15%");
column.For(x => x.Province).HeaderText("Province").Width("5%");
column.For(x => x.Country).HeaderText("Country").Width("5%");
column.For(x => x.Zipcode).HeaderText("Postal Code").Width("10%");
column.For(x => x.Email).HeaderText("Email").Width("14%");
column.For(x => x.Phone).HeaderText("Phone").Width("8%");
column.For(x => x.Fax).HeaderText("Fax").Width("8%");
})
.Features(feature =>
{
feature.Updating().EnableDeleteRow(false).ColumnSettings(cs =>
{
cs.ColumnSetting().ColumnKey("Purpose").Required(true).EditorType(ColumnEditorType.Combo).ComboEditorOptions(ad => ad.DataSource(Model.AddressPurposes).ValueKey("Value").TextKey("Value"));
cs.ColumnSetting().ColumnKey("AddressDetails").Required(true);
cs.ColumnSetting().ColumnKey("City").Required(true);
cs.ColumnSetting().ColumnKey("Zipcode").Required(true);
cs.ColumnSetting().ColumnKey("Province").Required(true);
cs.ColumnSetting().ColumnKey("Country").Required(true);
});
feature.Sorting();
feature.Filtering();
feature.Resizing().AllowDoubleClickToResize(true);
feature.Hiding();
feature.ColumnMoving();
feature.Paging().PageSize(15).Type(OpType.Local).ShowPagerRecordsLabel(true);
})
.UpdateUrl(Url.Action("BAAddressSaveData"))
.DataBind()
.Render())
CONTROLLER ACTION TO SAVE/UPDATE DATA
================================================
public ActionResult BAAddressSaveData()
{
var response = new Dictionary();
if (ModelState.IsValid)
{
var ba = new Address();
GridModel gridModel = new GridModel();
List> transactions = gridModel.LoadTransactions(HttpContext.Request.Form["ig_transactions"]);
foreach (Transaction t in transactions)
{
switch (t.type)
{
//ADD
case "newrow":
Tuple opResult;
ba.BAKey = Convert.ToInt32(Request.UrlReferrer.Segments[3]);
ba.Purpose = t.row.Purpose;
ba.AddressDetails = t.row.AddressDetails;
ba.City = t.row.City;
ba.Province = t.row.Province;
ba.Zipcode = t.row.Zipcode;
ba.Country = t.row.Country;
ba.Phone = t.row.Phone;
ba.Fax = t.row.Fax;
ba.Email = t.row.Email;
opResult = _repositoryAddr.Add(ba);
response.Add(opResult.Item1 ? "Success" : "Fail", opResult.Item2);
break;
//EDIT
case "row":
Tuple opResult1;
ba.AddressID = t.row.AddressID;
ba.BAKey = Convert.ToInt32(t.row.BAKey);
ba.Purpose = t.row.Purpose;
ba.AddressDetails = t.row.AddressDetails;
ba.City = t.row.City;
ba.Province = t.row.Province;
ba.Zipcode = t.row.Zipcode;
ba.Country = t.row.Country;
ba.Phone = t.row.Phone;
ba.Fax = t.row.Fax;
ba.Email = t.row.Email;
opResult1 = _repositoryAddr.Edit(ba);
response.Add(opResult1.Item1 ? "Success" : "Fail", opResult1.Item2);
break;
}
}
}
else
response.Add("Fail", "Form validation Errro!");
JsonResult result = new JsonResult();
result.Data = response;
return result;
}