or
Html.Telerik().Grid<MyApplication.MainApplication.Models.ApplicationModel.ApplicationViewModel>().Name(
"Grid1"
)
.Columns(col =>
{
col.Bound(c => c.UserID).ClientTemplate(
"<a href='"
+ Url.Content(
"~/Index/Details/"
) +
"<#= UserID #>' title='Details' class='lnkDetails'><#= Number #></a>"
).Title(
"Number"
).Filterable(
false
);
col.Bound(c => c.FirtName).Filterable(
false
);
col.Bound(c => c.LastName).Filterable(
false
);
col.Bound(c => c.RID).Hidden();
col.Bound(c => c.Active).Filterable(
false
).ClientTemplate(
"<input type='checkbox'"
+
"<#= Active?\"checked\":\"\" #>"
+
" OnClick='return false' />"
).Width(115);
col.Bound(c => c.StartDate).Filterable(
false
).Format(
"{0:d}"
).Width(115);
col.Bound(c => c.CloseDate).Filterable(
false
).Format(
"{0:d}"
).Width(112);
if
(currentUser.AdminRole && (currentUser.DataRole || currentUser.StaffRole))
{
col.Bound(c => c.ID).ClientTemplate(
"<a href='"
+ Url.Content(
"~/Controller/Create/"
) +
"<#= UserID #>' title='New Contact' class='edit'>New Contact</a>"
+
"<a href='"
+ Url.Content(
"~/Controller/Details/"
) +
"<#= UserID #>' title='Details' class='details action-margin'>Edit</a>"
+
"<a href='"
+ Url.Content(
"~/Controller/Delete/"
) +
"<#= UserID #>' title='Delete' class='delete action-margin'>Delete</a>"
).Title(
"Action"
).Filterable(
false
).Sortable(
false
).Width(90);
}
else
if
(currentUser.AdminRole)
{
col.Bound(c => c.UserID).ClientTemplate(
"<a href='"
+ Url.Content(
"~/Controller/Details/"
) +
"<#= UserID #>' title='Details' class='details'>Edit</a>"
+
"<a href='"
+ Url.Content(
"~/Controller/Delete/"
) +
"<#= UserID #>' title='Delete' class='delete action-margin'>Delete</a>"
).Title(
"Action"
).Filterable(
false
).Sortable(
false
).Width(90);
}
else
{
col.Bound(c => c.UserID).ClientTemplate(
"<a href='"
+ Url.Content(
"~/Controller/Details/"
) +
"<#= UserID #>' title='Details' class='details action-margin'>Edit</a>"
).Title(
"Action"
).Filterable(
false
).Sortable(
false
).Width(75);
}
})
.DataBinding(dataBinding => dataBinding.Ajax().Select(
"_Index"
,
"Controller"
))
.Pageable(p => p.PageSize(30))
.Filterable(f => f.Filters(filters =>
{
filters.Add(c => c.Number).StartsWith((
string
)ViewData[
"Number"
]);
filters.Add(c => c.FirstName).StartsWith((
string
)ViewData[
"FirstName"
]);
filters.Add(c => c.LastName).StartsWith((
string
)ViewData[
"LastName"
]);
}))
.Sortable(sorting => sorting
.Enabled(
false
)
.SortMode(GrUserIDSortMode.MultipleColumn)
.OrderBy(sortOrder =>
{
sortOrder.Add(o => o.Number);
sortOrder.Add(o => o.FirstName);
sortOrder.Add(o => o.LastName);
sortOrder.Add(o => o.Active);
sortOrder.Add(o => o.StartDate).Descending();
sortOrder.Add(o => o.CloseDate).Descending();
sortOrder.Add(o => o.UserID);
}))
.Render();
[GridAction]
public
ActionResult _Index()
{
return
View(
new
GridModel<UserViewModel>
{
Data = GetCases().ToList()
});
}
//previous columns code
columns.Bound(c => c.Duration).Title("Duration (h)").Width(150).ClientGroupFooterTemplate("Sum: #=sum#");
//following columns code
public
class
MyModel
{
public
string
OtherStuff {
get
;
set
;}
public
IEnumerable<TreeViewItemModel> treeData {
get
;
set
; }
}
@model MyModel
<
text
>@Model.SomethingElse</
text
>
@(Html.Kendo().TreeView()
.Name("treeview-left")
.ExpandAll(true)
.Checkboxes(checkboxes => checkboxes
.Name("checkedPubIds")
.CheckChildren(true)
)
.BindTo(Model.treeData)
)
private
MyModel GetMyModel()
{
var model =
new
PubTreeModel
{
OtherStuff =
"Hello"
,
treeData = GetTreeData()
// implementation omitted here
};
return
model;
}
[HttpGet]
public
ActionResult Index()
{
var model = GetMyModel();
return
View(model);
}
[HttpPost]
public
ActionResult Index(MyModel model)
{
if
(ModelState.IsValid)
{
// Access Violation, because model.treeData is null. Why?
foreach
(var x
in
model.treeData)
{
if
(x.Checked)
{
// do something
}
}
}
// Have to do this or View(model) will break,
// because there is no treeData in it.
model = GetPubTreeModel(model.SelectedUserId);
return
View(model);
}