예제 #1
0
		/// <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;
		}
예제 #2
0
		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);
		}