< назад

WAIT CONTROL

Rad


 Region Grid...."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

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 Thenv ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' 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