/// <summary> /// Process user-initiated sort operation /// </summary> /// <param name="source"></param> /// <param name="e"></param> /// <remarks></remarks> /// <history> /// [msellers] 5/17/2007 Added /// </history> protected void grdDocuments_Sorting (object sender, GridViewSortEventArgs e) { ArrayList objCustomSortList = new ArrayList (); DocumentsSortColumnInfo objCustomSortColumn = new DocumentsSortColumnInfo (); DocumentsSortColumnInfo.SortDirection objCustomSortDirecton = DocumentsSortColumnInfo.SortDirection.Ascending; string strSortDirectionString = "ASC"; // Set the sort column name objCustomSortColumn.ColumnName = e.SortExpression; // Determine if we need to reverse the sort. This is needed if an existing sort on the same column existed that was desc if (ViewState ["CurrentSortOrder"] != null && ViewState ["CurrentSortOrder"].ToString () != string.Empty) { string existingSort = ViewState ["CurrentSortOrder"].ToString (); if (existingSort.StartsWith (e.SortExpression) && existingSort.EndsWith ("ASC")) { objCustomSortDirecton = DocumentsSortColumnInfo.SortDirection.Descending; strSortDirectionString = "DESC"; } } // Set the sort objCustomSortColumn.Direction = objCustomSortDirecton; objCustomSortList.Add (objCustomSortColumn); var docComparer = new DocumentComparer (objCustomSortList); mobjDocumentList.Sort (docComparer.Compare); grdDocuments.DataSource = mobjDocumentList; grdDocuments.DataBind (); // Save the sort to viewstate ViewState ["CurrentSortOrder"] = e.SortExpression + " " + strSortDirectionString; // Mark as a user selected sort IsReadComplete = true; }
public ArrayList GetSortColumnList (string localResourceFile) { DocumentsSortColumnInfo objSortColumn = default(DocumentsSortColumnInfo); string strSortColumn = null; ArrayList objSortColumns = new ArrayList (); //if (this.SortOrder != string.Empty) { if (!string.IsNullOrEmpty (this.SortOrder)) { foreach (string strSortColumn_loopVariable in this.SortOrder.Split(char.Parse(","))) { strSortColumn = strSortColumn_loopVariable; objSortColumn = new DocumentsSortColumnInfo (); // REVIEW: Original: if (Strings.Left(strSortColumn, 1) == "-") { if (strSortColumn.StartsWith ("-")) { objSortColumn.Direction = DocumentsSortColumnInfo.SortDirection.Descending; objSortColumn.ColumnName = strSortColumn.Substring (1); } else { objSortColumn.Direction = DocumentsSortColumnInfo.SortDirection.Ascending; objSortColumn.ColumnName = strSortColumn; } objSortColumn.LocalizedColumnName = Localization.GetString (objSortColumn.ColumnName + ".Header", localResourceFile); objSortColumns.Add (objSortColumn); } } return objSortColumns; }
protected void grdSortColumns_DeleteCommand (object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { ArrayList objSortColumns = default(ArrayList); DocumentsSortColumnInfo objSortColumnToDelete = new DocumentsSortColumnInfo (); objSortColumns = RetrieveSortColumnSettings (); foreach (DocumentsSortColumnInfo objSortColumnToDelete_loopVariable in objSortColumns) { objSortColumnToDelete = objSortColumnToDelete_loopVariable; if (objSortColumnToDelete.ColumnName == grdSortColumns.DataKeys [e.Item.ItemIndex].ToString ()) { objSortColumns.Remove (objSortColumnToDelete); break; // TODO: might not be correct. Was : Exit For } } BindSortSettings (objSortColumns); }
private ArrayList RetrieveSortColumnSettings () { // Custom viewstate implementation to avoid reflection ArrayList objSortColumnSettings = new ArrayList (); DocumentsSortColumnInfo objSortColumnInfo = null; string strValues = null; strValues = Convert.ToString (ViewState [VIEWSTATE_SORTCOLUMNSETTINGS]); if ((strValues != null) && strValues != string.Empty) { foreach (string strSortColumnSetting in strValues.Split(char.Parse("#"))) { objSortColumnInfo = new DocumentsSortColumnInfo (); objSortColumnInfo.ColumnName = strSortColumnSetting.Split (char.Parse (",")) [0]; objSortColumnInfo.LocalizedColumnName = strSortColumnSetting.Split (char.Parse (",")) [1]; objSortColumnInfo.Direction = (DocumentsSortColumnInfo.SortDirection)System.Enum.Parse (typeof(DocumentsSortColumnInfo.SortDirection), strSortColumnSetting.Split (char.Parse (",")) [2]); objSortColumnSettings.Add (objSortColumnInfo); } } return objSortColumnSettings; }
protected void lnkAddSortColumn_Click (System.Object sender, System.EventArgs e) { ArrayList objSortColumns = default(ArrayList); DocumentsSortColumnInfo objNewSortColumn = new DocumentsSortColumnInfo (); objSortColumns = RetrieveSortColumnSettings (); objNewSortColumn.ColumnName = comboSortFields.SelectedValue; objNewSortColumn.LocalizedColumnName = LocalizeString (objNewSortColumn.ColumnName + ".Header"); if (comboSortOrderDirection.SelectedValue == "ASC") { objNewSortColumn.Direction = DocumentsSortColumnInfo.SortDirection.Ascending; } else { objNewSortColumn.Direction = DocumentsSortColumnInfo.SortDirection.Descending; } objSortColumns.Add (objNewSortColumn); BindSortSettings (objSortColumns); }