or
<telerik:GridTemplateColumn DataField="OrderQuantity" HeaderText="Order Quantity" UniqueName="OrderQuantity" Visible="true"> <InsertItemTemplate> <telerik:RadTextBox ID="RadtxtOrderQuantity" runat="server" Text=""> </telerik:RadTextBox> </InsertItemTemplate> <EditItemTemplate> <telerik:RadTextBox ID="RadtxtOrderQuantity" runat="server" Text='<%# Eval("OrderQuantity") %>'> </telerik:RadTextBox> </EditItemTemplate> <ItemTemplate> <telerik:RadTextBox ID="RadtxtOrderQuantity" ReadOnly="true" runat="server" Text='<%# Eval("OrderQuantity") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="UnitPrice" HeaderText="Unit Price" UniqueName="UnitPrice" Visible="true"> <InsertItemTemplate> <telerik:RadNumericTextBox ID="RadtxtUnitPrice" runat="server" > </telerik:RadNumericTextBox> </InsertItemTemplate> <EditItemTemplate> <telerik:RadNumericTextBox ID="RadtxtUnitPrice" runat="server" Text='<%# Eval("UnitPrice") %>'> </telerik:RadNumericTextBox> </EditItemTemplate> <ItemTemplate> <telerik:RadNumericTextBox ID="RadtxtUnitPrice" Type="Currency" ReadOnly="true" runat="server" Text='<%# Eval("UnitPrice") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridCalculatedColumn DataFormatString="{0:C}" DataType="System.Double" HeaderText="Extended Price" UniqueName="ExtendedPrice" DataFields="OrderQuantity,UnitPrice" Expression="{0}*{1}" FooterText="Total : " Aggregate="Sum"> </telerik:GridCalculatedColumn><telerik:GridCalculatedColumn DataFormatString="{0:C}" DataType="System.Double" HeaderText="Extended Price" UniqueName="ExtendedPrice" DataFields="OrderQuantity,UnitPrice" Expression="{0}*{1}" FooterText="Total : " Aggregate="Sum"> </telerik:GridCalculatedColumn>Private Sub BindTreeView(ByVal dt As DataTable, ByVal EditValue As String, ByVal searchedColumn As String) Try Dim siteData As New List(Of TreeViewCheckbox)() If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then siteData.Add(New TreeViewCheckbox(1, 0, "Select All")) Dim i As Integer = 0 Do While (i < dt.Rows.Count) Dim row As DataRow = dt.Rows(i) Dim srColumn As String = row(searchedColumn) i = (i + 1) siteData.Add(New TreeViewCheckbox(i + 1, 1, srColumn)) Loop End If If Not String.IsNullOrEmpty(EditValue) Then siteData.Add(New TreeViewCheckbox(1, 0, "Select All")) siteData.Add(New TreeViewCheckbox(2, 1, EditValue.Trim())) End If tvChkSearchResult.DataTextField = "Text" tvChkSearchResult.DataFieldID = "ID" tvChkSearchResult.DataFieldParentID = "ParentID" tvChkSearchResult.DataSource = siteData tvChkSearchResult.DataBind() If (siteData.Count = 0) Then RadWindowManager1.RadAlert("No results found,Please try again.", 330, 100, Nothing, Nothing) Else tvChkSearchResult.ExpandAllNodes() HideControls(True) End If Catch ex As Exception RadWindowManager1.RadAlert(ex.Message, 330, 100, Nothing, Nothing) End Try End SubIf Not String.IsNullOrEmpty(EditValue) Then siteData.Add(New TreeViewCheckbox(1, 0, "Select All")) siteData.Add(New TreeViewCheckbox(2, 1, EditValue.Trim())) End If <asp:TableCell CssClass="dfv"> <telerik:RadTreeView ID="tvChkSearchResult" runat="server" OnNodeClick="tvChkSearchResult_NodeClick" AutoPostBack="True" Width="300px" Height="200px" CheckBoxes="True" TriStateCheckBoxes="true" CheckChildNodes="true"> </telerik:RadTreeView></asp:TableCell>Dim siteData As New List(Of TreeViewCheckbox)() If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then siteData.Add(New TreeViewCheckbox(1, 0, "Select All")) Dim i As Integer = 0 Do While (i < dt.Rows.Count) Dim row As DataRow = dt.Rows(i) Dim srColumn As String = row(searchedColumn) i = (i + 1) siteData.Add(New TreeViewCheckbox(i + 1, 1, srColumn)) Loop End If If Not String.IsNullOrEmpty(EditValue) Then siteData.Add(New TreeViewCheckbox(1, 0, "Select All")) siteData.Add(New TreeViewCheckbox(2, 1, EditValue.Trim())) End If tvChkSearchResult.DataTextField = "Text" tvChkSearchResult.DataFieldID = "ID" tvChkSearchResult.DataFieldParentID = "ParentID" tvChkSearchResult.DataSource = siteData tvChkSearchResult.DataBind()Protected Sub tvChkSearchResult_NodeCheck(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadTreeNodeEventArgs) Handles tvChkSearchResult.NodeCheck If tvChkSearchResult.SelectedNode.Checked Then Dim s As String = "" End If End Sub Protected Sub tvChkSearchResult_NodeClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadTreeNodeEventArgs) Handles tvChkSearchResult.NodeClick If tvChkSearchResult.SelectedNode.Checked Then Dim s As String = "" End If End SubAn unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of the
exception can be identified using the exception stack trace below. |
Imports SystemImports System.Collections.GenericImports System.WebImports Telerik.Web.UIImports System.Web.UI.WebControlsImports System.CollectionsImports System.Web.UIImports System.IOImports System.Xml.Serialization''' <summary>''' Imports and exports settings from a RadGrid instance.''' </summary>Public Class GridSettingsPersister ''' <summary> ''' Initializes an instance of GridSettingsPersister from a RadGrid instance ''' </summary> ''' <param name="grid">The RadGrid instance to import and exports settings</param> Public Sub New(ByVal grid As RadGrid) Me.New(grid, GridSettingsType.All) End Sub ''' <summary> ''' Initializes an instance of GridSettingsPersister from a RadGrid instance ''' and a collection GridSettingsType values ''' </summary> ''' <param name="grid">The RadGrid instance to import and exports settings</param> ''' <param name="persistedSettingFlags"> ''' A collection of GridSettingType values specifying the type of grid settings ''' to import or export ''' </param> Public Sub New(ByVal grid As RadGrid, ByVal persistedSettingFlags As GridSettingsType) _grid = grid _persistedSettingTypes = persistedSettingFlags _settings = New GridSettingsCollection() _settings.ColumnSettings = New List(Of ColumnSettings)() _settings.AutoGeneratedColumnSettings = New List(Of ColumnSettings)() End Sub Private _grid As RadGrid Private _persistedSettingTypes As GridSettingsType Private _settings As GridSettingsCollection ''' <summary> ''' The underlyiong RadGrid instance to import or export settings from ''' </summary> Public ReadOnly Property Grid() As RadGrid Get Return _grid End Get End Property ''' <summary> ''' Gets or sets the GridSettingType flags that specify the grid settings to ''' export or import ''' </summary> Public Overridable Property PersistedSettingTypes() As GridSettingsType Get Return _persistedSettingTypes End Get Set(ByVal value As GridSettingsType) _persistedSettingTypes = value End Set End Property Protected Overridable Property Settings() As GridSettingsCollection Get Return _settings End Get Set(ByVal value As GridSettingsCollection) _settings = value End Set End Property ''' <summary> ''' Saves the current grid settings and returns the settings serilized to string ''' </summary> Public Overridable Function SaveSettings() As String Return GetSavedSettings().ToString() 'save item to DB then return the data End Function ''' <summary> ''' Saves the current grid settings and retrieves the underlying ''' GridSettingsCollection instance that contains the grid settings ''' </summary> Public Overridable Function GetSavedSettings() As GridSettingsCollection If Grid Is Nothing Then Throw New NullReferenceException() End If If IsSettingSpecified(GridSettingsType.Paging) Then SavePagingSettings() End If If IsSettingSpecified(GridSettingsType.Grouping) Then SaveGroupByExpressions() End If If IsSettingSpecified(GridSettingsType.Sorting) Then SaveSortExpressions() End If If IsSettingSpecified(GridSettingsType.Filtering) Then SaveFilterExpression() End If If IsSettingSpecified(GridSettingsType.ColumnSettings) Then SaveColumnSettings() End If Return Settings End Function Protected Function IsSettingSpecified(ByVal settingType As GridSettingsType) As Boolean Return (PersistedSettingTypes And GridSettingsType.All) = GridSettingsType.All OrElse (PersistedSettingTypes And settingType) = settingType End Function Protected Overridable Sub SavePagingSettings() Settings.PageSize = Grid.MasterTableView.PageSize End Sub Protected Overridable Sub SaveGroupByExpressions() Settings.GroupByExpressionsStates = New Object(Grid.MasterTableView.GroupByExpressions.Count - 1) {} Dim i As Integer = 0 While i < Settings.GroupByExpressionsStates.Length Settings.GroupByExpressionsStates(i) = (DirectCast(Grid.MasterTableView.GroupByExpressions(i), IStateManager)).SaveViewState() System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1) End While End Sub Protected Overridable Sub SaveSortExpressions() Settings.SortExpressionsState = (DirectCast(Grid.MasterTableView.SortExpressions, IStateManager)).SaveViewState() End Sub Protected Overridable Sub SaveFilterExpression() Settings.FilterExpression = Grid.MasterTableView.FilterExpression End Sub Protected Overridable Sub SaveColumnSettings() Settings.ColumnSettings.Clear() For Each column As GridColumn In Grid.MasterTableView.Columns Settings.ColumnSettings.Add(GetColumnSettings(column)) Next Settings.AutoGeneratedColumnSettings.Clear() For Each column As GridColumn In Grid.MasterTableView.AutoGeneratedColumns Settings.AutoGeneratedColumnSettings.Add(GetColumnSettings(column)) Next End Sub Private Function GetColumnSettings(ByVal column As GridColumn) As ColumnSettings Dim colSettings As New ColumnSettings() colSettings.UniqueName = column.UniqueName colSettings.Width = column.HeaderStyle.Width colSettings.Visible = column.Visible colSettings.Display = column.Display colSettings.OrderIndex = column.OrderIndex colSettings.CurrentFilterFunction = column.CurrentFilterFunction colSettings.CurrentFilterValue = column.CurrentFilterValue Return colSettings End Function Private Sub SetColumnSettings(ByRef column As GridColumn, ByVal setting As ColumnSettings) column.Display = setting.Display column.Visible = setting.Visible column.HeaderStyle.Width = setting.Width column.OrderIndex = setting.OrderIndex column.CurrentFilterFunction = setting.CurrentFilterFunction column.CurrentFilterValue = setting.CurrentFilterValue End Sub ''' <summary> ''' Loads grids settings from a serialized string ''' </summary> ''' <param name="value">The string that contains the serialized settings</param> Public Overridable Sub LoadSettings(ByVal value As String) 'retrieve from database the serialized string of data and call load settings LoadSettings(GridSettingsCollection.LoadFromSerializedData(value)) End Sub ''' <summary> ''' Loads grids settings from a byte array ''' </summary> ''' <param name="data">The byte array that contains the serialized grid settings</param> Public Overridable Sub LoadSettings(ByVal data As Byte()) LoadSettings(GridSettingsCollection.LoadFromSerializedData(data)) End Sub ''' <summary> ''' Loads grid settings from a GridSettingsCollection instance ''' </summary> ''' <param name="savedSettings">The GridSettingsCollection instance to load settings from</param> Public Overridable Sub LoadSettings(ByVal savedSettings As GridSettingsCollection) If Grid Is Nothing OrElse savedSettings Is Nothing Then Throw New NullReferenceException() End If Settings = savedSettings If IsSettingSpecified(GridSettingsType.Paging) Then LoadPagingSettings() End If If IsSettingSpecified(GridSettingsType.Grouping) Then LoadGroupByExpressions() End If If IsSettingSpecified(GridSettingsType.Sorting) Then LoadSortExpressions() End If If IsSettingSpecified(GridSettingsType.Filtering) Then LoadFilterExpression() End If If IsSettingSpecified(GridSettingsType.ColumnSettings) Then LoadColumnSettings() End If End Sub Protected Overridable Sub LoadPagingSettings() If Grid.MasterTableView.AllowPaging AndAlso Settings.PageSize > 0 Then Grid.MasterTableView.PageSize = Settings.PageSize End If End Sub Protected Overridable Sub LoadGroupByExpressions() If Settings.GroupByExpressionsStates Is Nothing Then Return End If Grid.MasterTableView.GroupByExpressions.Clear() For Each expressionState As Object In Settings.GroupByExpressionsStates Dim expression As New GridGroupByExpression() DirectCast(expression, IStateManager).LoadViewState(expressionState) Grid.MasterTableView.GroupByExpressions.Add(expression) Next End Sub Protected Overridable Sub LoadSortExpressions() If Settings.SortExpressionsState Is Nothing Then Return End If DirectCast(Grid.MasterTableView.SortExpressions, IStateManager).LoadViewState(Settings.SortExpressionsState) End Sub Protected Overridable Sub LoadFilterExpression() Grid.MasterTableView.FilterExpression = Settings.FilterExpression End Sub Protected Overridable Sub LoadColumnSettings() If Settings.AutoGeneratedColumnSettings.Count > 0 Then AddHandler Grid.ColumnCreated, New GridColumnCreatedEventHandler(AddressOf Grid_ColumnCreated) End If For Each colSetting As ColumnSettings In Settings.ColumnSettings Dim column As GridColumn = Grid.MasterTableView.GetColumnSafe(colSetting.UniqueName) If column IsNot Nothing Then SetColumnSettings(column, colSetting) End If Next End Sub Private Sub Grid_ColumnCreated(ByVal sender As Object, ByVal e As GridColumnCreatedEventArgs) Dim colSettings As ColumnSettings = Nothing For Each colSettings In Settings.AutoGeneratedColumnSettings If colSettings.UniqueName = e.Column.UniqueName Then colSettings = colSettings Exit For End If Next colSettings Dim column As GridColumn = e.Column If colSettings IsNot Nothing Then SetColumnSettings(column, colSettings) End If End SubEnd Class''' <summary> ''' Enumerates the types of grid settings that can be persisted ''' </summary> <Flags()> _Public Enum GridSettingsType Paging = 1 Sorting = 2 Filtering = 4 Grouping = 8 ColumnSettings = 16 All = 32End Enum''' <summary> ''' Represents a collection of grid settings ''' </summary> <Serializable()> _Public Class GridSettingsCollection Private _pageSize As Integer Private _groupByExpressionsStates As Object Private _sortExpressionsState As Object Private _filterExpression As String Private _columnSettings As List(Of ColumnSettings) Private _autoColumnSettings As List(Of ColumnSettings) Public Property PageSize() As Integer Get Return _pageSize End Get Set(ByVal value As Integer) _pageSize = value End Set End Property Public Property GroupByExpressionsStates() As Object() Get Return _groupByExpressionsStates End Get Set(ByVal value As Object()) _groupByExpressionsStates = value End Set End Property Public Property SortExpressionsState() As Object Get Return _sortExpressionsState End Get Set(ByVal value As Object) _sortExpressionsState = value End Set End Property Public Property FilterExpression() As String Get Return _filterExpression End Get Set(ByVal value As String) _filterExpression = value End Set End Property Public Property ColumnSettings() As List(Of ColumnSettings) Get Return _columnSettings End Get Set(ByVal value As List(Of ColumnSettings)) _columnSettings = value End Set End Property Public Property AutoGeneratedColumnSettings() As List(Of ColumnSettings) Get Return _autoColumnSettings End Get Set(ByVal value As List(Of ColumnSettings)) _autoColumnSettings = value End Set End Property ''' <summary> ''' Returns the serialized object as string ''' </summary> Public Overloads Overrides Function ToString() As String Dim formatter As New XmlSerializer(Me.GetType()) Dim writer As New StringWriter() formatter.Serialize(writer, Me) Return writer.ToString() End Function ''' <summary> ''' Returns the serialized object as byte array ''' </summary> Public Function ToArray() As Byte() Dim formatter As New XmlSerializer(Me.GetType()) Using stream As New MemoryStream() formatter.Serialize(stream, Me) Return stream.ToArray() End Using End Function ''' <summary> ''' Gets the GridSettingsCollectionInstance from its serialized string data ''' </summary> ''' <param name="data">The object as serialized string data</param> Public Shared Function LoadFromSerializedData(ByVal data As String) As GridSettingsCollection Dim formatter As New LosFormatter() Return DirectCast(formatter.Deserialize(data), GridSettingsCollection) End Function ''' <summary> ''' Gets the GridSettingsCollectionInstance from its serialized byte array ''' </summary> ''' <param name="data">The object as serialized byte array</param> Public Shared Function LoadFromSerializedData(ByVal data As Byte()) As GridSettingsCollection Dim formatter As New XmlSerializer(GetType(GridSettingsCollection)) Using stream As New MemoryStream(data) Return DirectCast(formatter.Deserialize(stream), GridSettingsCollection) End Using End FunctionEnd Class''' <summary> ''' Represents a collection of grid column settings ''' </summary> <Serializable()> _Public Class ColumnSettings Private _uniqueName As String Private _orderIndex As Integer Private _width As Unit Private _visible As Boolean Private _display As Boolean Private _currentFilterFunction As GridKnownFunction Private _currentFilterValue As String Public Property UniqueName() As String Get Return _uniqueName End Get Set(ByVal value As String) _uniqueName = value End Set End Property Public Property OrderIndex() As Integer Get Return _orderIndex End Get Set(ByVal value As Integer) _orderIndex = value End Set End Property Public Property Width() As Unit Get Return _width End Get Set(ByVal value As Unit) _width = value End Set End Property Public Property Visible() As Boolean Get Return _visible End Get Set(ByVal value As Boolean) _visible = value End Set End Property Public Property Display() As Boolean Get Return _display End Get Set(ByVal value As Boolean) _display = value End Set End Property Public Property CurrentFilterFunction() As GridKnownFunction Get Return _currentFilterFunction End Get Set(ByVal value As GridKnownFunction) _currentFilterFunction = value End Set End Property Public Property CurrentFilterValue() As String Get Return _currentFilterValue End Get Set(ByVal value As String) _currentFilterValue = value End Set End PropertyEnd Class