When I add the following to my grid, I can no longer sort, page, or filter -
.ClientEvents(events =>
{
events.OnDataBinding(
"onDataBinding");
})
Here is my entire grid-
<
h2>Requisition List for View</h2>
<div>
<%
= Html.ActionLink("Export Current Page", "Export", new { page = 1, orderBy = "~", filter = "~", allPages = "false", listSource = "ViewList"}, new { id = "exportPageLink" })%>
<br />
<%
= Html.ActionLink("Export All Pages", "Export", new { page = 1, orderBy = "~", filter = "~", allPages = "true", listSource = "ViewList"}, new { id = "exportAllLink" })%>
</div>
<div >
<% Html.Telerik().Grid(Model.RequisitionList)
.Name(
"Grid")
.DataBinding(dbinding => dbinding.Server())
.DataKeys(keys =>
{
keys.Add(o => o.RequisitionID);
})
.Columns(columns =>
{
columns.Template(o =>
{
%>
<a href="<%: Url.Action("Details", "Requisition", new { id = o.RequisitionID }) %>" class = "viewLink" title="Details"><img src="<%= Url.Content("~/Content/Images/magnifier.png") %>" alt="Details" /></a>
<%
}).Title(
"View").Width(50);
columns.Bound(o => o.Requestor.FullName).Title(
"Requestor").Filterable(false).Sortable(false).Width(100);
columns.Bound(o => o.Vendor.Name).Title(
"Vendor").Width(100);
columns.Bound(o => o.FiscalYear).Title(
"Fiscal Year").Width(80);
columns.Bound(o => o.Account.Number).Title(
"Account").Width(80);
columns.Bound(o => o.RequestedDate).Title(
"Requested").Format("{0:d}").Width(80);
columns.Bound(o => o.Status).Title(
"Status").Width(80);
columns.Bound(o => o.Description).Title(
"Description").Filterable(false).Sortable(false).Width(200);
columns.Bound(o => o.ReceivedDate).Title(
"Received").Format("{0:d}").Width(80);
columns.Bound(o => o.Paid).Title(
"Paid").Width(50);
columns.Bound(o => o.ModifiedBy).Title(
"Modified By").Width(80);
columns.Bound(o => o.ModifiedDate).Title(
"Modified Date").Format("{0:d}").Width(100);
})
.Filterable()
.Scrollable(scrolling => scrolling.Height(
"440px"))
.Sortable(sorting => sorting.OrderBy(sortOrder => sortOrder.Add(o => o.ReceivedDate).Descending()))
.Pageable()
.Resizable(resizing => resizing.Columns(
true))
.Footer(
true)
.ClientEvents(events =>
{
events.OnDataBinding(
"onDataBinding");
})
.Render();
%>
</div>
<script type="text/javascript">
function onDataBinding() {
var grid = $(this).data('tGrid');
var $exportPageLink = $('#exportPageLink');
var $exportAllLink = $('#exportAllLink');
var hrefPage = $exportPageLink.attr('href');
hrefPage = hrefPage.replace(/page=([^&]*)/,
'page=' + grid.currentPage);
hrefPage = hrefPage.replace(/orderBy=([^&]*)/,
'orderBy=' + (grid.orderBy || '~'));
hrefPage = hrefPage.replace(/filter=(.*)/,
'filter=' + (grid.filterExpression || '~'));
$exportPageLink.attr(
'href', hrefPage);
var hrefAll = $exportAllLink.attr('href');
hrefAll = hrefAll.replace(/page=([^&]*)/,
'page=1');
hrefAll = hrefAll.replace(/orderBy=([^&]*)/,
'orderBy=' + (grid.orderBy || '~'));
hrefAll = hrefAll.replace(/filter=(.*)/,
'filter=' + (grid.filterExpression || '~'));
$exportAllLink.attr(
'href', hrefAll);
}
</script>
Thank you,
-Tony