2013-09-10 3 views
0

Я портировании из ASP.NET GridView для DevExpress AspxGridView, и я использую тот же ObjectDataSource, но теперь, когда я нажимаю на заголовке он бросает:AspxGridView ObjectDataSource сортировки

«Источник данных«ххх 'не поддерживает сортировку с данными IEnumerable. Автоматическая сортировка поддерживается только DataView, DataTable и DataSet. "

Но это хорошо работает для GridView, поэтому я сомневаюсь, что это действительно ошибка «xxx». На старом пейджинге gridview и сортировке было хорошо. Теперь пейджинг по-прежнему работает (когда я использую «DataSourceForceStandardPaging»).

Как заставить его работать с AspxGridView?

+0

Вы можете использовать customorting для реализации сортировки в aspxgridview –

ответ

1

Вы можете реализовать ASPxGridView сортировки с помощью пользовательских правил, необходимо установить Settings.SortMode свойство столбца, чтобы «Custom» и обрабатывать ASPxGridView.CustomColumnSort событие (как это показано в соответствующей теме). Однако параметр Settings.AllowSort не должен быть отключен.

Пользовательские сортировки Примера:

RepositoryItemHyperLinkEdit hlnkEditor; 
private void GridCustomSortTest_Load(object sender, EventArgs e) 
{ 
    string[] months = new string[] { "January", "February", "March", 
     "April", "May", "June", "July", "August", "September", 
     "October", "November", "December" }; 
    hlnkEditor = new RepositoryItemHyperLinkEdit(); 
    //hlnkEditor.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph; 

    grid.DataSource = months; 
    grid.RefreshDataSource(); 
    gridView1.Columns[0].SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom; 
    gridView1.Columns[0].ColumnEdit = hlnkEditor; 
    gridView1.CustomColumnSort += new DevExpress.XtraGrid.Views.Base.CustomColumnSortEventHandler(gridView1_CustomColumnSort); 


} 

void gridView1_CustomColumnSort(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnSortEventArgs e) 
{ 
    e.Result = Comparer<int>.Default.Compare(e.ListSourceRowIndex1, 
     e.ListSourceRowIndex2); 

    e.Handled = true; 
} 

Надеется, что это поможет ..

Edit: Для стороны сервера сортировки и пейджинговые пожалуйста, пройти через пример - Bind a grid to a ObjectDataSource with EnablePaging и там также проверить см также ссылки.

Больше Ссылки:
How can I get the grid to sort my ObjectDataSource on the server?
Passing Gridview Paging/Sorting/Grouping/Filtering expressions to business logic Select Methods
ASPxGridView - ObjectDataSource Paging and Filtering
Performance comparison of XPO and Entity Frameworks, and ObjectDataSource

связыванию с большими данными:
Binding to Data
Binding to Large Data (Database Server Mode)
A possible implementation of IListServer interface to achieve Server Mode functionality

+0

Извините, здесь была ночь. Будет ли это работать с поисковым вызовом или будет сортировать только фактическую страницу (сортировка клиентов)? Мне нужна сортировка на стороне сервера. Он работал задолго до этого. Столбец «order by» был отправлен методу GetData, и я отсортировал данные на стороне сервера. Это не изменилось, но AspxGridView выбрасывает это странное сообщение. – SmartK8

+0

Ты здесь? Как я могу реализовать сортировку сервера (у меня есть 100 000 строк)? – SmartK8

+0

@ SmartK8: Пожалуйста, проверьте обновленный ответ для справки. –