protected void AdvancedSortOrderList_ItemReorder(object sender, AjaxControlToolkit.ReorderListItemReorderEventArgs e) { AdvancedSortOrderList.EditItemIndex = -1; ListViewSortColumn colToMove = listSettings.SortColumns[e.OldIndex]; listSettings.SortColumns.Remove(colToMove); listSettings.SortColumns.Insert(e.NewIndex, colToMove); SaveAdvancedSortChanges(); }
protected void AdvancedSortOrderList_ItemCommand(object sender, AjaxControlToolkit.ReorderListCommandEventArgs e) { if (e.CommandName == "direction") { ListViewSortColumn column = listSettings.SortColumns.SingleOrDefault(sc => sc.ColumnName == e.CommandArgument.ToString()); column.SortDirection = (column.SortDirection == ColumnSortDirection.Ascending) ? ColumnSortDirection.Descending : ColumnSortDirection.Ascending; SaveAdvancedSortChanges(); } }
protected void AdvancedSortOrderList_InsertCommand(object sender, AjaxControlToolkit.ReorderListCommandEventArgs e) { DropDownList ColumnsDropDownList = (DropDownList)e.Item.FindControl("AddSortColumnsList"); CheckBox AddColumnToSortDescendingCheckBox = (CheckBox)e.Item.FindControl("AddColumnToSortDescendingCheckBox"); ColumnSortDirection newDirection = (AddColumnToSortDescendingCheckBox.Checked) ? ColumnSortDirection.Descending : ColumnSortDirection.Ascending; ListViewSortColumn newSortColumn = new ListViewSortColumn(ColumnsDropDownList.SelectedValue, newDirection); listSettings.SortColumns.Add(newSortColumn); SaveAdvancedSortChanges(); }
protected void AdvancedSortOrderList_DeleteCommand(object sender, AjaxControlToolkit.ReorderListCommandEventArgs e) { ListViewSortColumn column = listSettings.SortColumns.SingleOrDefault(sc => sc.ColumnName == e.CommandArgument.ToString()); if (column != null) { listSettings.SortColumns.Remove(column); } SaveAdvancedSortChanges(); }
/// <summary> /// Applies the sorts from a specific user's list view settings. /// </summary> /// <param name="ticketQuery">The ticket query.</param> /// <param name="listViewSettings">The list view settings to sort by.</param> /// <returns></returns> private static IQueryable <Ticket> ApplySorts(this IQueryable <Ticket> ticketQuery, ListViewSettings listViewSettings) { IQueryable <Ticket> newQuery = ticketQuery; //sorts have to be applied in reverse order as the last applied is the first in the SQL query generated for (int x = listViewSettings.SortColumns.Count() - 1; x >= 0; x--) { ListViewSortColumn column = listViewSettings.SortColumns[x]; bool isDescending = (column.SortDirection == ColumnSortDirection.Descending); newQuery = newQuery.ApplySort(column.ColumnName, isDescending); } return(newQuery); }
protected void SortLinkPreRendering(object sender, EventArgs e) { ImageButton btn = (ImageButton)sender; ListViewSortColumn sortCol = ListSettings.SortColumns.SingleOrDefault(sc => sc.ColumnName == btn.CommandArgument); if (sortCol != null) { string imgUrl = string.Format("~/Controls/Images/{0}.png", (sortCol.SortDirection == ColumnSortDirection.Ascending) ? "up" : "down"); btn.ImageUrl = imgUrl; } else { btn.ImageUrl = "~/Controls/Images/nobutton.gif"; } }
protected void TicketListView_ItemCommand(object sender, ListViewCommandEventArgs e) { if (e.CommandName == "ChangeSort") { ListViewSortColumn sortCol = ListSettings.SortColumns.SingleOrDefault(sc => sc.ColumnName == e.CommandArgument.ToString()); if (sortCol != null)// column already in sort, just flip direction { sortCol.SortDirection = (sortCol.SortDirection == ColumnSortDirection.Ascending) ? ColumnSortDirection.Descending : ColumnSortDirection.Ascending; } else // column not in sort, replace sort with new simple sort for column { ListSettings.SortColumns.Clear(); ListSettings.SortColumns.Add(new ListViewSortColumn(e.CommandArgument.ToString(), ColumnSortDirection.Ascending)); } userSettings.Save(); Bind(); OnSettingsChanged(); } }