public List<DocumentsDisplayColumnInfo> GetDisplayColumnList (string localResourceFile)
        {
            var objColumnSettings = new List<DocumentsDisplayColumnInfo> ();
		
            if (!string.IsNullOrWhiteSpace (DisplayColumns)) {
                // read "saved" column sort orders in first
                foreach (var strColumn in DisplayColumns.Split( new [] {','}, StringSplitOptions.RemoveEmptyEntries)) {
                    var strColumnData = strColumn.Split (new [] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                    var strColumnName = strColumnData [0];

                    if (DocumentsDisplayColumnInfo.AvailableDisplayColumns.Contains (strColumnName)) {
                        var objColumnInfo = new DocumentsDisplayColumnInfo () {
                            ColumnName = strColumnName,
                            DisplayOrder = objColumnSettings.Count + 1,
                            Visible = bool.Parse (strColumnData [1]),
                            LocalizedColumnName = Localization.GetString (strColumnName + ".Header", localResourceFile)
                        };

                        objColumnSettings.Add (objColumnInfo);
                    }
                }
            }

            return objColumnSettings;
        }
		/// -----------------------------------------------------------------------------
		/// <summary>
		/// LoadSettings loads the settings from the Databas and displays them
		/// </summary>
		/// <remarks>
		/// </remarks>
		/// <history>
		/// </history>
		/// -----------------------------------------------------------------------------
		public override void LoadSettings ()
		{
			DocumentsDisplayColumnInfo objColumnInfo = null;
			
			try
			{
				if (!IsPostBack)
				{
					LoadLists ();

					chkShowTitleLink.Checked = DocumentsSettings.ShowTitleLink;
					chkUseCategoriesList.Checked = DocumentsSettings.UseCategoriesList;
					chkAllowUserSort.Checked = DocumentsSettings.AllowUserSort;
                    Utils.SelectByValue (comboGridStyle, DocumentsSettings.GridStyle);

					try
					{
						if (DocumentsSettings.DefaultFolder != null)
						{
							folderDefaultFolder.SelectedFolder = 
								FolderManager.Instance.GetFolder (DocumentsSettings.DefaultFolder.Value);
						}
					}
					catch
					{
						// suppress exception.  Can be caused if the selected folder has been deleted
					}

					try
					{
						cboCategoriesList.SelectedValue = DocumentsSettings.CategoriesListName;
					}
					catch
					{
						// suppress exception.  Can be caused if the selected list has been deleted
					}

					// read "saved" column sort orders in first
					var objColumnSettings = DocumentsSettings.DisplayColumnList;

					foreach (DocumentsDisplayColumnInfo objColumnInfo_loopVariable in objColumnSettings)
					{
						objColumnInfo = objColumnInfo_loopVariable;
						// Set localized column names
						objColumnInfo.LocalizedColumnName = Localization.GetString (objColumnInfo.ColumnName + ".Header", base.LocalResourceFile);
					}
					
					// Add any missing columns to the end
					foreach (string strColumnName_loopVariable in DocumentsDisplayColumnInfo.AvailableDisplayColumns)
					{
						var strColumnName = strColumnName_loopVariable;
						if (DocumentsSettings.FindColumn (strColumnName, objColumnSettings, false) < 0)
						{
							objColumnInfo = new DocumentsDisplayColumnInfo ();
							objColumnInfo.ColumnName = strColumnName;
							objColumnInfo.LocalizedColumnName = Localization.GetString (objColumnInfo.ColumnName + ".Header", base.LocalResourceFile);
							objColumnInfo.DisplayOrder = objColumnSettings.Count + 1;
							objColumnInfo.Visible = false;
							
							objColumnSettings.Add (objColumnInfo);
						}
					}

					// Sort by DisplayOrder
					BindColumnSettings (objColumnSettings);

					// Load sort columns 
					string strSortColumn = null;
					ArrayList objSortColumns = new ArrayList ();
					foreach (string strSortColumn_loopVariable in DocumentsDisplayColumnInfo.AvailableSortColumns)
					{
						strSortColumn = strSortColumn_loopVariable;
						comboSortFields.AddItem (LocalizeString (strSortColumn + ".Header"), strSortColumn);
					}

					BindSortSettings (DocumentsSettings.GetSortColumnList (this.LocalResourceFile));

                    // load grid style
                    Utils.SelectByValue (comboGridStyle, DocumentsSettings.GridStyle);
				}
				//Module failed to load
			}
			catch (Exception exc)
			{
				Exceptions.ProcessModuleLoadException (this, exc);
			}
		}
		private List<DocumentsDisplayColumnInfo> RetrieveDisplayColumnSettings ()
		{
			// Custom viewstate implementation to avoid reflection
			var objDisplayColumnSettings = new List<DocumentsDisplayColumnInfo> ();
			DocumentsDisplayColumnInfo objDisplayColumnInfo = null;

			string strValues = null;

			strValues = Convert.ToString (ViewState [VIEWSTATE_DISPLAYCOLUMNSETTINGS]);
			if (!string.IsNullOrEmpty (strValues))
			{
				foreach (string strDisplayColumnSetting in strValues.Split('#'))
				{
					objDisplayColumnInfo = new DocumentsDisplayColumnInfo ();
					objDisplayColumnInfo.ColumnName = strDisplayColumnSetting.Split (char.Parse (",")) [0];
					objDisplayColumnInfo.LocalizedColumnName = strDisplayColumnSetting.Split (char.Parse (",")) [1];
					objDisplayColumnInfo.DisplayOrder = Convert.ToInt32 (strDisplayColumnSetting.Split (char.Parse (",")) [2]);
					objDisplayColumnInfo.Visible = Convert.ToBoolean (strDisplayColumnSetting.Split (char.Parse (",")) [3]);

					objDisplayColumnSettings.Add (objDisplayColumnInfo);
				}
			}

			return objDisplayColumnSettings;
		}