WAIT CONTROL
Me.plhStylesGrid.Controls.Clear() Me.plhStylesGrid.Controls.Add(m_RadGridStyles)
End If
'If blnJustSettings Then
' '''''''''''''''''''''''''''''''''''' ' ' Restore grid persisted settings. ' ' '''''''''''''''''''''''''''''''''''' ' m_objRadGridHandler.LoadPersistedGridSettings(m_RadGridTplData, Me.UserProperties.TeamID)
'End If
If blnTransformCardView2ListView Then ''''''''''''''''''''''''''''''''''''''''''''''''''' ' Transform the grid from Card View to List View. ' ''''''''''''''''''''''''''''''''''''''''''''''''''' m_objRadGridHandler.TransformCardView2ListView(m_RadGridStyles) End If
If blnFixGroupHeaderTexts Then ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Fix the text used in the group headers for dropdownlists. ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' m_objRadGridHandler.FixGroupHeaderTexts(m_RadGridStyles) End If
Else
If blnWholeGrid Then
'''''''''''''''''' ' Save the Grid. ' '''''''''''''''''' m_objRadGridHandler.SaveGrid(m_RadGridStyles, Request, Me.strXMLPath, Me.strGridSchema, "RadGridChangeLog", "ChangeLogItemID", Me.UserProperties.Fullname)
End If
'If blnJustSettings Then
' '''''''''''''''''''''''''''''' ' ' Persist the grid settings. ' ' '''''''''''''''''''''''''''''' ' m_objRadGridHandler.PersistGridSettings(m_RadGridTplData, Me.UserProperties.TeamID)
'End If
End If
End Sub
Region "Rad grid"
Private Sub LoadSaveRadGrid(ByVal blnLoadGrid As Boolean, _ Optional ByVal blnWholeGrid As Boolean = True, _ Optional ByVal blnJustSettings As Boolean = False, _ Optional ByVal blnTransformCardView2ListView As Boolean = False, Optional ByVal blnFixGroupHeaderTexts As Boolean = False)
If m_objRadGridHandler Is Nothing Then m_objRadGridHandler = New Yunique.Core.UI.RadGridHandler() End If
Using dstXmlData As New DataSet() dstXmlData.ReadXml(String.Format("{0}\{1}", strXMLPath, strGridSchema))
m_objRadGridHandler.ClientCulture = Me.strClientCulture - задание языковых настроек m_objRadGridHandler.ServerCulture = Me.strServerCulture m_objRadGridHandler.ServerTimeZone = Me.strServerTimeZone - задание временной зоны m_objRadGridHandler.FormName = "Change_Main" m_objRadGridHandler.XMLSchemaName = Me.strGridSchema - XML-схема, которая предназначена для этого grid-а m_objRadGridHandler.GridReadOnly = True - read only (поля будут только для чтения) m_objRadGridHandler.DatabaseConnectionString = Me.strConnection - строка подключения к БД m_objRadGridHandler.XmlData = dstXmlData - dataset, который строится на основании XML m_objRadGridHandler.XmlSearchData = dstXmlData m_objRadGridHandler.IsPostBack = Page.IsPostBack m_objRadGridHandler.IsCallBack = Page.IsCallback - значение, указывающее, является ли запрос страницы результатом обратного вызова m_objRadGridHandler.PreferredLanguage = Me.UserProperties.PrefLang - язык grid-а m_objRadGridHandler.CellImageHeight = "050" - высота ячейки с картинками End Using
If blnLoadGrid Then
If blnWholeGrid Then
'''''''''''''''''''''''''''''' ' Set the search parameters. ' '''''''''''''''''''''''''''''' m_objRadGridHandler.RowFilter = ""
'''''''''''''''''' ' Load the Grid. ' '''''''''''''''''' m_RadGridStyles = New Telerik.Web.UI.RadGrid() - создается объект класса RadGrid m_RadGridStyles.ID = "RadGridStyles" - ID - уникальное имя грида на странице m_RadGridStyles.PagerStyle.Visible = False - отображение стандартного пейджинга в стиле Telerik.Web.UI(False - отключить) m_RadGridStyles.MasterTableView.EnableColumnsViewState = False - задаём, что столбцы могут изменяться на каком то этапе m_RadGridStyles.ClientSettings.ClientEvents.OnColumnHidden = "ColumnHidden" - имя javascript функции для скрытия колонок m_RadGridStyles.ClientSettings.ClientEvents.OnColumnShown = "ColumnShown" - имя javascript функции для отображения колонок m_RadGridStyles.MasterTableView.ClientDataKeyNames = New String() {"Image", "StyleNo"} - задание ключей для каждого элемента(строки) в гриде m_RadGridStyles.HeaderContextMenu.EnableEmbeddedSkins = False - отображать контекстное меню в стиле Telerik.Web.UI(False - не отображать) AddHandler m_RadGridStyles.HeaderContextMenu.ItemClick, AddressOf HeaderContextMenu_ItemClick - создание контекстного меню для грида
m_objRadGridHandler.SetupGrid(m_RadGridStyles) - загрузка настроек для грида m_objRadGridHandler.AddMainGridColumns(m_RadGridStyles) - добавление колонок m_RadGridStyles.AllowCustomPaging = True - включить Database пейджинг
If Page.IsPostBack And Request.Form(chbThumbnail.UniqueID) IsNot Nothing Then - отображаем или скрываем колнку предпросмотра изображения(Thumbnail) Dim thumbnailColumn As GridColumn = m_RadGridStyles.MasterTableView.GetColumnSafe("Image") If thumbnailColumn IsNot Nothing Then thumbnailColumn.Visible = True 'm_RadGridStyles.DataSource = Nothing 'm_RadGridStyles.Rebind() End If End If
For Each column As GridColumn In m_RadGridStyles.MasterTableView.Columns - подготовка данных для сохранения настроек If String.IsNullOrEmpty(column.GroupByExpression) Then Dim strName As String = column.UniqueName Dim strAlias As String = column.HeaderText column.GroupByExpression = String.Format("{0} [{1}] Group By {0}", strName, strAlias) column.SortExpression = strName column.SortedBackColor = System.Drawing.Color.FromArgb(152, 251, 152) End If Next
If m_RadGridStyles.MasterTableView.GetColumnSafe("LineFolderItemDrop") IsNot Nothing Then - создание дополнительных колонок, которых нет в XML-схеме m_RadGridStyles.MasterTableView.GetColumn("LineFolderItemDrop").HeaderText = "
" m_RadGridStyles.MasterTableView.GetColumn("LineFolderItemDrop").GroupByExpression = "LineFolderItemDrop [" & "
" & "] Group By LineFolderItemDrop" End If
Dim dsSettings As DataSet
' load group and group sorting Dim objUserPreferenceAPI As New Yunique.BOL.UserPreference() '----------------------------------------------' загрузка пользовательской группировки с сервера
dsSettings = objUserPreferenceAPI.LoadUserPreference(Me.ClientID & "_" & "RadGridStyles", aspxPageName, "GridGroupSort", UserProperties.TeamID, UserProperties.Username)
Dim strColumnUniqueName As String = Nothing Dim strColumnGroupByOrder As String = Nothing Dim strGroupByExpression As String = Nothing
If dsSettings IsNot Nothing AndAlso dsSettings.Tables(0).Rows.Count > 0 Then Dim arrColumns As Array = Split(dsSettings.Tables(0).Rows(0)("UserPreferenceValue").ToString, ",")
For Each strColumnNameAndOrder As String In arrColumns If Not String.IsNullOrEmpty(strColumnNameAndOrder) Then strColumnUniqueName = Left(strColumnNameAndOrder, strColumnNameAndOrder.IndexOf(" ")) strColumnGroupByOrder = Right(strColumnNameAndOrder, strColumnNameAndOrder.Length - strColumnNameAndOrder.IndexOf(" ") - 1) If m_RadGridStyles.MasterTableView.Columns.FindByUniqueNameSafe(strColumnUniqueName) IsNot Nothing Then strGroupByExpression = m_RadGridStyles.MasterTableView.Columns.FindByUniqueName(strColumnUniqueName).GroupByExpression strGroupByExpression = strGroupByExpression.Replace(" ASC", "").Replace(" DESC", "").Trim() strGroupByExpression &= " " & strColumnGroupByOrder m_RadGridStyles.MasterTableView.GroupByExpressions.Add(strGroupByExpression) End If End If Next End If '------------------------------------------
Dim expression As New GridSortExpression() For Each strColumnNameAndOrder As String In arrColumns If Not String.IsNullOrEmpty(strColumnNameAndOrder) Then strColumnUniqueName = Left(strColumnNameAndOrder, strColumnNameAndOrder.IndexOf(" ")) strColumnGroupByOrder = Right(strColumnNameAndOrder, strColumnNameAndOrder.Length - strColumnNameAndOrder.IndexOf(" ") - 1) If m_RadGridStyles.MasterTableView.Columns.FindByUniqueNameSafe(strColumnUniqueName) IsNot Nothing Then Select Case strColumnGroupByOrder Case "ASC" strColumnGroupByOrder = "Ascending" Case "DESC" strColumnGroupByOrder = "Descending" Case Else strColumnGroupByOrder = "None" End Select
expression.FieldName = strColumnUniqueName expression.SetSortOrder(strColumnGroupByOrder) m_RadGridStyles.MasterTableView.SortExpressions.AddSortExpression(expression) End If End If Next End If '---------------------------------------------------------------- загрузка пользовательских настроек отображаемых колонок с сервера 'load hidden columns dsSettings = objUserPreferenceAPI.LoadUserPreference(Me.ClientID & "_" & "RadGridStyles", aspxPageName, "HiddenColumns", UserProperties.TeamID, UserProperties.Username) If dsSettings IsNot Nothing AndAlso dsSettings.Tables(0).Rows.Count > 0 Then Dim arrColumns As Array = Split(dsSettings.Tables(0).Rows(0)("UserPreferenceValue").ToString, ",")
For Each strHiddenColumnName As String In arrColumns Dim hiddenGridColumn As Telerik.Web.UI.GridColumn = m_RadGridStyles.MasterTableView.Columns.FindByUniqueNameSafe(strHiddenColumnName) If hiddenGridColumn IsNot Nothing Then hiddenGridColumn.Display = False End If Next End If