or
public
class
HomeController : Controller
{
//
// GET: /Home/
[HttpGet]
public
ActionResult Index()
{
return
View();
}
// Carrier Actions
//
// POST: /ReadCarriers/
[HttpPost]
public
ActionResult CarrierRead([DataSourceRequest] DataSourceRequest request)
{
try
{
var facade =
new
CarrierFacade();
IList<Carrier> carriers = facade.GetAllCarriers();
return
Json(carriers.ToDataSourceResult(request));
}
catch
(DbException ex)
{
ViewBag.ErrorMessage = ex.Message;
return
View(
"Error"
);
}
}
// Comment Actions
//
// POST: /CommentRead/
[HttpPost]
public
ActionResult CommentRead([DataSourceRequest] DataSourceRequest request,
int
carrierId)
{
try
{
var facade =
new
CarrierFacade();
IList<CarrierComment> comments = facade.GetAllComments(carrierId);
return
Json(comments.ToDataSourceResult(request));
}
catch
(DbException ex)
{
ViewBag.ErrorMessage = ex.Message;
return
View(
"Error"
);
}
}
}
@using HappyHolidays.WebPortal.BusinessObjects
@{
ViewBag.Title = "Carrier Directory";
}
@(Html.Kendo().Grid<
Carrier
>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Name).Groupable(false);
columns.Bound(p => p.Phone1).Groupable(false).Title("Primary Phone");
columns.Bound(p => p.Phone2).Groupable(false).Title("Secondary Phone");
columns.Bound(p => p.Fax).Groupable(false);
columns.Command(command =>
{
command.Edit();
command.Destroy();
});
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Groupable()
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.Selectable()
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.ClientDetailTemplateId("carrier-detail")
.DataSource(
dataSource => dataSource
.Ajax()
.PageSize(50)
.Model(model =>
{
model.Id(p => p.CarrierId);
model.Field(p => p.CarrierId).Editable(false);
})
.Create(update => update.Action("CarrierCreate", "Home"))
.Update(update => update.Action("CarrierUpdate", "Home"))
.Destroy(update => update.Action("CarrierDelete", "Home"))
.Read(read => read.Action("CarrierRead", "Home"))))
<
script
id
=
"carrier-detail"
type
=
"text/x-kendo-template"
>
@(Html.Kendo().Grid<
CarrierComment
>()
.Name("commentsGrid#=CarrierId#")
.Columns(columns =>
{
columns.Bound(o => o.Comment);
columns.Bound(o => o.AddedBy);
columns.Bound(o => o.TimeStamp);
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("CommentRead", "Home", new { carrierID = "#=CarrierId#" }))
)
.Pageable()
.Sortable()
.ToClientTemplate()
)
</
script
>
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>@ViewBag.Title</
title
>
<
link
href
=
"@Url.Content("
~/Content/Site.css")"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
link
href
=
"@Url.Content("
~/Content/kendo/2013.1.514/kendo.common.min.css")"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
link
href
=
"@Url.Content("
~/Content/kendo/2013.1.514/kendo.dataviz.min.css")"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
link
href
=
"@Url.Content("
~/Content/kendo/2013.1.514/kendo.metro.min.css")"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
link
href
=
"@Url.Content("
~/Content/kendo/2013.1.514/kendo.dataviz.metro.min.css")"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
script
src
=
"@Url.Content("
~/Scripts/kendo/2013.1.514/jquery.min.js")"> </
script
>
<
script
src
=
"@Url.Content("
~/Scripts/kendo/2013.1.514/kendo.all.min.js")"> </
script
>
<
script
src
=
"@Url.Content("
~/Scripts/kendo/2013.1.514/kendo.aspnetmvc.min.js")"> </
script
>
<
script
src
=
"@Url.Content("
~/Scripts/kendo.modernizr.custom.js")"> </
script
>
</
head
>
<
body
>
<
div
>
@RenderBody()
</
div
>
</
body
>
</
html
>
<
script
id
=
"shipmentDetail-template"
type
=
"text/x-kendo-template"
>
--- lots of template code removed for brevity ---
# var myVal; var cr = data.CustomerReference; for (var key in cr) { if (cr.hasOwnProperty(key)) { myVal = cr[key]; # #= myVal # , # } } #
</
script
>
$.ajax({
type:
'post'
,
data: kendo.stringify($(
"#Grid"
).data(
"kendoGrid"
).dataSource.view()),
dataType:
"json"
,
contentType:
"application/json; charset=utf-8"
,
url:
'@Url.Action("CreateExcelFile","Helper")'
,
success:
function
(response) {
},
error:
function
(request, status, errorThrown) {
}
});
@(Html.Kendo().Grid(m)
.Name(gridName)
.BindTo(m)
.ToolBar(commands => commands.Create().Text(newButtonText))
.Events(e => e.Edit("onGridCellEdit" + gridName))
.DataSource(dataSource => dataSource.Ajax().Events(ev => ev.Change("onDataSourceChange" + gridName))
.Model(model =>
{
model.Id(p => p.ID);
model.Field(p => p.Function).DefaultValue((KeyValueObjectViewModel)ViewData[SAPController.GRID_DDL_PROPERTY_FUNCTION + "_Default"]);
model.Field(p => p.SAPClientEmpty).DefaultValue((KeyValueObjectViewModel)ViewData[SAPController.GRID_DDL_PROPERTY_SAP_CLIENT_EMPTY + "_Default"]);
model.Field(p => p.Person).DefaultValue(new ResultEntryViewModel(true, false));
}).ServerOperation(false)
)
.Columns(columns =>
{
columns.Bound(p => p.Function).ClientTemplate("#=Function.Name#").Width(200).Title(Strings.ColumnFunction);
columns.Bound(p => p.SAPClientEmpty).ClientTemplate("#=SAPClientEmpty.Name#").Width(200).Title(Strings.ColumnSAPClient);
columns.Bound(p => p.Person).ClientTemplate("#=Person.Name#").Title(Strings.ColumnPerson);
columns.Template(@<
text
></
text
>).Width(20).ClientTemplate(TemplateConstants.GRID_CLIENTTEMPLATE_DELETE_COLUMN);
})
.Editable(editing => editing.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))
)
<
system.web.extensions
>
<
scripting
>
<
webServices
>
<
jsonSerialization
maxJsonLength
=
"2147483647"
/>
</
webServices
>
</
scripting
>
</
system.web.extensions
>
JavaScriptSerializer ser = new JavaScriptSerializer();
ser.MaxJsonLength = Int32.MaxValue;
// TODO: Do the Kendo Grid serialization ...