This is a migrated thread and some comments may be shown as answers.

[Solved] Client-side JSON array sorting

0 Answers 127 Views
Grid
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
aa1237
Top achievements
Rank 1
aa1237 asked on 30 Apr 2010, 10:51 PM
I am binding the grid to a clientSide JSON array and I can't get it to sort.   Is it possible to sort the grid clientside? Here is my code.

<%

Html.Telerik().Grid<

Pair<string, string>>()

 

.Name(

"MaterielItemsGrid")

 

.DataKeys(datakeyBuilder => datakeyBuilder.Add(item => item.First))

.HtmlAttributes(

new { @class = "gridWidthSmall", style="float:left" })

 

.ToolBar(toolbarBuilder =>

{

toolbarBuilder.Custom()

.Text(

"Delete")

 

.Url(

"#")

 

.HtmlAttributes(

new

 

{

@class =

"t-grid-delete",

 

onclick =

"javascript:DeleteFromGrid();return false;"

 

});

})

.Columns(columnBuilder =>

{

columnBuilder.Base4DCheckbox(

Html,

modelItem => modelItem.First,

 

"First").Width(15).Sortable(false);

 

columnBuilder.Bound(modelItem => modelItem.First).Title(

"Serial Number");

 

columnBuilder.Bound(modelItem => modelItem.Second).Title(

"Barcode");

 

})

.DataBinding(dataBindingBuilder =>

{

dataBindingBuilder.Ajax();

})

.ClientEvents(events => events.OnDataBinding(

"OnDataBinding"))

 

.Pageable(p => p.PageSize(10))

.Filterable()

.Sortable(s=>s.OrderBy(o=>o.Add(m=>m.First)))

.Render();

%>

 

 

 

 

 

 

</asp:Content>

 

<

asp:Content ID="Content3" ContentPlaceHolderID="ScriptFooter" runat="server">

 

<%

= Html.Telerik().ScriptRegistrar()%>

 

 

<script src="/Scripts/jquery-ui-1.8/jquery-ui-1.8.custom.min.js" type="text/javascript"></script>

 

 

<script type="text/javascript">

 

<!--

 

var serialNumbers = [];

 

 

function OnDataBinding(e) {

 

 

//overriding the default grid ajax binding

 

 

//this was added because the grid would not render the checkboxs

 

 

//without the binding specified

 

e.preventDefault();

 

if (e.sortedColumns.length > 0) {

 

 

debugger;

 

 

var grid = $('#MaterielItemsGrid').data('tGrid');

 

grid.filter(e.sortedColumns[0].member +

'-' + e.sortedColumns[0].order);

 

grid.total = serialNumbers.length;

grid.dataBind(serialNumbers);

}

}

 

function AddMaterielItems() {

 

 

//get the serialNumbers

 

postnumbers = [];

 

for (var i in serialNumbers) {

 

postnumbers.push(serialNumbers[i].First);

}

 

}

 

 

 

function AddToGrid(result) {

 

handleErrors(result);

 

if (result.success == true) {

 

 

var item = result.data.serialNumber;

 

 

var FID = $('#FID').text();

 

serialNumbers.push({ First: item, Second: FID + item });

 

var grid = $('#MaterielItemsGrid').data('tGrid');

 

grid.total = serialNumbers.length;

grid.dataBind(serialNumbers);

}

}

 

function DeleteFromGrid() {

 

 

// Get the selected grid IDs (global grid variable)

 

 

var ids = getSelectedIds($('#MaterielItemsGrid'));

 

 

 

for (var i in ids) {

 

serialNumbers.splice(i,1);

}

 

 

var grid = $('#MaterielItemsGrid').data('tGrid');

 

grid.dataBind(serialNumbers);

}

Tags
Grid
Asked by
aa1237
Top achievements
Rank 1
Share this question
or