public async Task BindModelAsync(ModelBindingContext bindingContext) { await Task.Run(() => { int index; var request = new DataTableRequest(); request.bRegex = Convert.ToBoolean(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "bRegex").Select(i => i.Value.ToString()).FirstOrDefault()); request.sSearch = bindingContext.HttpContext.Request.Query.Where(i => i.Key == "sSearch").Select(i => i.Value.ToString()).FirstOrDefault(); request.sEcho = bindingContext.HttpContext.Request.Query.Where(i => i.Key == "sEcho").Select(i => i.Value.ToString()).FirstOrDefault(); request.sColumns = bindingContext.HttpContext.Request.Query.Where(i => i.Key == "sColumns").Select(i => i.Value.ToString()).FirstOrDefault(); request.iColumns = Convert.ToInt32(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "iColumns").Select(i => i.Value.ToString()).FirstOrDefault()); request.iDisplayLength = Convert.ToInt32(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "iDisplayLength").Select(i => i.Value.ToString()).FirstOrDefault()); request.iDisplayStart = Convert.ToInt32(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "iDisplayStart").Select(i => i.Value.ToString()).FirstOrDefault()); request.iSortingCols = Convert.ToInt32(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "iSortingCols").Select(i => i.Value.ToString()).FirstOrDefault()); request.Sorts = new List <DataTableSort>(); request.Columns = new List <DataTableColumnActions>(); index = 0; while (bindingContext.HttpContext.Request.Query.Keys.Any(k => k == "iSortCol_" + index)) { var sort = new DataTableSort(); sort.iSortCol = Convert.ToInt32(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "iSortCol_" + index).Select(i => i.Value.ToString()).FirstOrDefault()); sort.sSortDir = bindingContext.HttpContext.Request.Query.Where(i => i.Key == "sSortDir_" + index).Select(i => i.Value.ToString()).FirstOrDefault(); request.Sorts.Add(sort); index++; } index = 0; while (bindingContext.HttpContext.Request.Query.Keys.Any(k => k == "mDataProp_" + index)) { var column = new DataTableColumnActions(); column.bRegex = Convert.ToBoolean(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "bRegex_" + index).Select(i => i.Value.ToString()).FirstOrDefault()); column.bSearchable = Convert.ToBoolean(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "bSearchable_" + index).Select(i => i.Value.ToString()).FirstOrDefault()); column.bSortable = Convert.ToBoolean(bindingContext.HttpContext.Request.Query.Where(i => i.Key == "bSortable_" + index).Select(i => i.Value.ToString()).FirstOrDefault()); column.mDataProp = bindingContext.HttpContext.Request.Query.Where(i => i.Key == "mDataProp_" + index).Select(i => i.Value.ToString()).FirstOrDefault(); column.sSearch = bindingContext.HttpContext.Request.Query.Where(i => i.Key == "sSearch_" + index).Select(i => i.Value.ToString()).FirstOrDefault(); request.Columns.Add(column); index++; } bindingContext.Result = ModelBindingResult.Success(request); return(Task.CompletedTask); }); }
private static void TrySortDataTable(ref List <DataTableItem> dataTableItems, string dataTableName, string defaultSortColumn) { string column = defaultSortColumn; string dir = "asc"; if (DataTableSorts.ContainsKey(dataTableName)) { DataTableSort dts = DataTableSorts[dataTableName]; column = dts.Column; dir = dts.Direction; } // name, strategies, positions, orders, actions, realized, unrealized dataTableItems = dataTableItems.OrderBy(dti => dti.ColumnValues[column]).ToList(); if (dir == "desc") { dataTableItems.Reverse(); } }
private void ChampionSearchTextBox_TextChanged(object sender, EventArgs e) { DataTableSort dataSort = new DataTableSort(); ChampionsInfoGrid.DataSource = dataSort.DataTableSortMethod((DataTable)ChampionsInfoGrid.DataSource, ChampionSearchTextBox.Text); }