I am just so frurstrated now as Telerik dont have any examle what I need for my situation. All I want is to sort the column by clicking on a column name from client side. If i try to define a ajax select binding that contrdicts with column template. Now, it goes to the default server method which was used to populate grid when a column is clicked, but I dont want that. Even if the solution is to only implement on server side then how can I know the column name ther which user clicked? I cant believe they dont have any clien side column click event or something or sortable method where I can say which column to sort with during runtime
Import Namespace="Telerik.Web.Mvc.UI" %>
<%
@ Import Namespace="Telerik.Web.Mvc.UI.Fluent" %>
<
div class="control-content" id="SearchBrowseGrid" style="height:700px;">
<% Html.Telerik().Grid(Model.BrowseRows)
.Name(
"BrowseGrid")
.Columns(columns =>
{
columns.Template(c =>
{
%>
<img alt="<%= c.IconAlt %>" class="iconMenu" src="<%= Url.Content(c.IconSrc) %>" style="<%= (c.IsTemplate ? "border: solid 2px grey;" : string.Empty) %>" />
<%
}).Width(30);
columns.Bound(c => c.Name).Width(400);
columns.Bound(c => c.Type).Width(100);
columns.Bound(c => c.Description);
columns.Bound(c => c.Path).HtmlAttributes(
new
{
style =
"display:none;width:0;"
}).HeaderHtmlAttributes(
new
{
style =
"display:none;width:0;"
});
})
.Selectable()
.Pageable(paging =>
{
paging.PageSize(20);
})
.DataKeys(d => d.Add<
string>(c => c.Path))
.ClientEvents(e =>
{
e.OnRowSelected(
"BrowseGrid__rowSelected");
// e.OnDataBinding("BrowseGrid__ColumnSelected");
})
.HtmlAttributes(
new
{
id =
"BrowseGrid"
})
.Sortable()
.Render();
%>
<div style="display:none" id="BusinessDefinitionPath"></div>
</
div>
<
script type="text/javascript">
function BrowseGrid__rowSelected(e) {
var bdd = e.row.cells[e.row.cells.length - 1].innerHTML;
$(
'#SearchBrowseGrid #BusinessDefinitionPath').html(bdd);
Display__SearchDetailsDefinition(bdd);
Display__SearchDetailsRelations(bdd);
}
// row selected
function BrowseGrid__ColumnSelected(e) {
var grid = $('#BrowseGrid').data('tGrid');
//Descendingly sort the records by the Name property
grid.orderBy=
"Name";
}
</
script>