/// <summary>
        /// Process user-initiated sort operation
        /// </summary>
        /// <history>
        ///     [msellers]	5/17/2007	 Added
        /// </history>
        protected void grdDocuments_Sorting(object sender, GridViewSortEventArgs e)
        {
            var objCustomSortList      = new ArrayList();
            var objCustomSortColumn    = new DocumentsSortColumnInfo();
            var objCustomSortDirecton  = Models.SortDirection.Ascending;
            var 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)
            {
                var existingSort = ViewState ["CurrentSortOrder"].ToString();
                if (existingSort.StartsWith(e.SortExpression, StringComparison.InvariantCulture) &&
                    existingSort.EndsWith("ASC", StringComparison.InvariantCulture))
                {
                    objCustomSortDirecton  = Models.SortDirection.Descending;
                    strSortDirectionString = "DESC";
                }
            }

            // Set the sort
            objCustomSortColumn.Direction = objCustomSortDirecton;
            objCustomSortList.Add(objCustomSortColumn);

            var docComparer = new DocumentViewModelComparer(objCustomSortList);

            Documents.Sort(docComparer.Compare);
            grdDocuments.DataSource = Documents;
            grdDocuments.DataBind();

            // Save the sort to viewstate
            ViewState ["CurrentSortOrder"] = e.SortExpression + " " + strSortDirectionString;
        }
Exemple #2
0
        ArrayList RetrieveSortColumnSettings()
        {
            // custom viewstate implementation to avoid reflection
            var objSortColumnSettings = new ArrayList();
            DocumentsSortColumnInfo objSortColumnInfo = null;

            string strValues = null;

            strValues = Convert.ToString(ViewState [VIEWSTATE_SORTCOLUMNSETTINGS]);
            if (!string.IsNullOrEmpty(strValues))
            {
                foreach (string strSortColumnSetting in strValues.Split('#'))
                {
                    objSortColumnInfo                     = new DocumentsSortColumnInfo();
                    objSortColumnInfo.ColumnName          = strSortColumnSetting.Split(',') [0];
                    objSortColumnInfo.LocalizedColumnName = strSortColumnSetting.Split(',') [1];
                    objSortColumnInfo.Direction           = (DocumentsSortColumnInfo.SortDirection)Enum.Parse(
                        typeof(DocumentsSortColumnInfo.SortDirection),
                        strSortColumnSetting.Split(',') [2]);

                    objSortColumnSettings.Add(objSortColumnInfo);
                }
            }

            return(objSortColumnSettings);
        }
Exemple #3
0
        void SaveSortColumnSettings(ArrayList objSettings)
        {
            // custom viewstate implementation to avoid reflection
            DocumentsSortColumnInfo objSortColumnInfo = null;
            string strValues = "";

            foreach (DocumentsSortColumnInfo objSortColumnInfo_loopVariable in objSettings)
            {
                objSortColumnInfo = objSortColumnInfo_loopVariable;
                if (strValues != string.Empty)
                {
                    strValues = strValues + "#";
                }

                strValues = strValues + objSortColumnInfo.ColumnName + "," + objSortColumnInfo.LocalizedColumnName + "," + objSortColumnInfo.Direction.ToString();
            }
            ViewState [VIEWSTATE_SORTCOLUMNSETTINGS] = strValues;
        }
Exemple #4
0
        protected void grdSortColumns_DeleteCommand(object source, DataGridCommandEventArgs e)
        {
            var objSortColumns        = default(ArrayList);
            var 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;
                }
            }

            BindSortSettings(objSortColumns);
        }
        protected void lnkAddSortColumn_Click(object sender, EventArgs e)
        {
            var objSortColumns   = default(ArrayList);
            var objNewSortColumn = new DocumentsSortColumnInfo();

            objSortColumns = RetrieveSortColumnSettings();
            objNewSortColumn.ColumnName = comboSortFields.SelectedValue;
            if (comboSortOrderDirection.SelectedValue == "ASC")
            {
                objNewSortColumn.Direction = Models.SortDirection.Ascending;
            }
            else
            {
                objNewSortColumn.Direction = Models.SortDirection.Descending;
            }

            objSortColumns.Add(objNewSortColumn);
            BindSortSettings(objSortColumns);
        }
Exemple #6
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Read settings from the screen into the passed-in DocumentsSettings object
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// </history>
        /// -----------------------------------------------------------------------------
        void FillSettings()
        {
            string strDisplayColumns = "";
            DocumentsDisplayColumnInfo objColumnInfo = null;
            int    intIndex          = 0;
            var    objSortColumns    = default(ArrayList);
            string strSortColumnList = "";
            DocumentsSortColumnInfo objSortColumn = null;

            // ensure that if categories list is checked that we did have an available category
            if ((chkUseCategoriesList.Checked && !lstNoListsAvailable.Visible))
            {
                // if so, set normally
                Settings.UseCategoriesList  = chkUseCategoriesList.Checked;
                Settings.CategoriesListName = cboCategoriesList.SelectedValue;
            }
            else
            {
                // otherwise default values
                Settings.UseCategoriesList  = false;
                Settings.CategoriesListName = "";
            }

            Settings.ShowTitleLink = chkShowTitleLink.Checked;
            Settings.AllowUserSort = chkAllowUserSort.Checked;
            Settings.GridStyle     = comboGridStyle.SelectedItem.Value;

            try {
                DateTime.Now.ToString(textDateTimeFormat.Text);
                Settings.DateTimeFormat = textDateTimeFormat.Text;
            }
            catch (Exception ex) {
                Exceptions.LogException(ex);
                Settings.DateTimeFormat = null;
            }

            if (folderDefaultFolder.SelectedFolder != null)
            {
                Settings.DefaultFolder = folderDefaultFolder.SelectedFolder.FolderID;
            }
            else
            {
                Settings.DefaultFolder = null;
            }

            var objColumnSettings = RetrieveDisplayColumnSettings();

            intIndex = 0;
            foreach (DocumentsDisplayColumnInfo objColumnInfo_loopVariable in objColumnSettings)
            {
                objColumnInfo = objColumnInfo_loopVariable;
                // Figure out column visibility
                objColumnInfo.Visible = ((CheckBox)grdDisplayColumns.Items [intIndex].Cells [1].FindControl("chkVisible")).Checked;

                if (strDisplayColumns != string.Empty)
                {
                    strDisplayColumns = strDisplayColumns + ",";
                }
                strDisplayColumns = strDisplayColumns + objColumnInfo.ColumnName + ";" + objColumnInfo.Visible.ToString();

                intIndex = intIndex + 1;
            }

            Settings.DisplayColumns = strDisplayColumns;

            objSortColumns = RetrieveSortColumnSettings();
            foreach (DocumentsSortColumnInfo objSortColumn_loopVariable in objSortColumns)
            {
                objSortColumn = objSortColumn_loopVariable;
                if (strSortColumnList != string.Empty)
                {
                    strSortColumnList = strSortColumnList + ",";
                }
                strSortColumnList = strSortColumnList + (objSortColumn.Direction == DocumentsSortColumnInfo.SortDirection.Descending ? "-" : "") + objSortColumn.ColumnName;
            }
            Settings.SortOrder = strSortColumnList;
            Settings.GridStyle = comboGridStyle.SelectedValue;
        }