' objects available to be updated via ajax
Private _timeLabel As Label
Private _txtUserid As New TextBox ' If I change this to RadTextBox, viewstate errors occur.
Private _statusLabel As Label
Private m_RadTreeFolderHierarchy As New Telerik.Web.UI.RadTreeView
Public Sub New()
Me.ExportMode = WebPartExportMode.All
GetUserInfoFromWSS()
End Sub
Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
MyBase.OnInit(e)
Page.ClientScript.RegisterStartupScript(
GetType(_TreeNav_Webpart), Me.ID, "_spOriginalFormAction = document.forms[0].action;_spSuppressFormOnSubmitWrapper=true;", True)
If Me.Page.Form IsNot Nothing Then
Dim formOnSubmitAtt As String = Me.Page.Form.Attributes("onsubmit")
If Not String.IsNullOrEmpty(formOnSubmitAtt) AndAlso formOnSubmitAtt = "return _spFormOnSubmitWrapper();" Then
Me.Page.Form.Attributes("onsubmit") = "_spFormOnSubmitWrapper();"
End If
' Check for a scriptmanager, if none, add one.
Dim scriptManager As ScriptManager = Web.UI.ScriptManager.GetCurrent(Me.Page)
If scriptManager Is Nothing Then
scriptManager =
New RadScriptManager()
Me.Page.Form.Controls.AddAt(0, scriptManager)
End If
End If
End Sub
Protected Overloads Overrides Sub OnLoad(ByVal e As EventArgs)
MyBase.OnLoad(e)
AddControls()
End Sub
Protected
Sub AddControls()
Dim
nl As String = Environment.NewLine
Dim msgTxt As String = ""
Dim wrapPanel As New Panel()
wrapPanel.ID =
"Panel1"
Me.Controls.Add(wrapPanel)
Dim lblUserId As New Web.UI.WebControls.Label
lblUserId.Text =
"UID: " + _AttorneyID
lblUserId.ToolTip = _WorkEmail
wrapPanel.Controls.Add(lblUserId)
m_RadTreeFolderHierarchy.ID = "
NavTree" ' this name is referenced in client side javascript
'_txtUserid.Text = Environment.UserName
Try
' see if TreeData" & _AttorneyID & ".xml" exists to use. If not, use the default tree.
'If IO.File.Exists("~/MJComponentSupport/TreeData_" & _AttorneyID & ".xml") Then
Try
m_RadTreeFolderHierarchy.LoadContentFile(
"~/TreeSupport/Userdata/TreeData_" & Environment.UserName & ".xml")
msgTxt = Environment.UserName &
"'s Tree Loaded"
Catch ex As Exception
msgTxt =
"Default Tree Loaded"
m_RadTreeFolderHierarchy.LoadContentFile(
"~/TreeSupport/Userdata/TreeData.xml")
End Try
' change some visual display options
m_RadTreeFolderHierarchy.EnableTheming =
True 'similar to tree item
m_RadTreeFolderHierarchy.EnableAjaxSkinRendering =
True
m_RadTreeFolderHierarchy.Skin = _RadSkin
m_RadTreeFolderHierarchy.AllowNodeEditing =
False
m_RadTreeFolderHierarchy.CheckBoxes =
True
m_RadTreeFolderHierarchy.EnableDragAndDrop =
True
AddHandler m_RadTreeFolderHierarchy.NodeDrop, AddressOf treeView_NodeDrop
AddHandler m_RadTreeFolderHierarchy.NodeClick, AddressOf treeView_NodeClick
AddHandler m_RadTreeFolderHierarchy.ContextMenuItemClick, AddressOf treeViewMenu_ItemClick 'ContextMenuItemClick
AddHandler m_RadTreeFolderHierarchy.NodeEdit, AddressOf treeView_NodeTextChanged
'AddHandler m_RadTreeFolderHierarchy.NodeContextClick, AddressOf tvnodecontextclic
Catch ex As Exception
Dim RadTreeNodeRoot As New Telerik.Web.UI.RadTreeNode(_WorkEmail)
m_RadTreeFolderHierarchy.Nodes.Add(RadTreeNodeRoot)
RadTreeNodeRoot =
New Telerik.Web.UI.RadTreeNode(ex.Message)
m_RadTreeFolderHierarchy.Nodes.Add(RadTreeNodeRoot)
End Try
Try
' ADD Defaul Menu for tree
m_RadTreeFolderHierarchy.ContextMenus.Add(
New RadTreeViewContextMenu())
m_RadTreeFolderHierarchy.ContextMenus(0).LoadContentFile(
"~/TreeSupport/TreeMenu.xml")
' Menu for My Matters (Clients) top level.
m_RadTreeFolderHierarchy.ContextMenus.Add(
New RadTreeViewContextMenu())
m_RadTreeFolderHierarchy.ContextMenus(1).LoadContentFile(
"~/TreeSupport/ClientsMenu.xml")
' Menu for client record
m_RadTreeFolderHierarchy.ContextMenus.Add(
New RadTreeViewContextMenu())
m_RadTreeFolderHierarchy.ContextMenus(2).LoadContentFile(
"~/TreeSupport/ClientMenu.xml")
Catch ex As Exception
End Try
'add tree to panel
wrapPanel.Controls.Add(m_RadTreeFolderHierarchy)
'add a label control
_timeLabel =
New Label()
_timeLabel.Text = DateTime.Now.ToLongTimeString()
wrapPanel.Controls.Add(_timeLabel)
' add label to panel
Dim linebreak As Label = New Label()
linebreak.Text =
" "
wrapPanel.Controls.Add(linebreak)
' add label to panel
'add a label control
_statusLabel =
New Label()
_statusLabel.Text = msgTxt
wrapPanel.Controls.Add(_statusLabel)
' add label to panel
wrapPanel.Controls.Add(linebreak)
' add label to panel
' add user textbox
wrapPanel.Controls.Add(_txtUserid) ' add label to panel
Dim ajaxManager As RadAjaxManager = RadAjaxManager.GetCurrent(Me.Page)
If ajaxManager Is Nothing Then
ajaxManager =
New RadAjaxManager()
ajaxManager.ID =
"RadAjaxManager1"
Controls.Add(ajaxManager)
Me.Page.Items.Add(GetType(RadAjaxManager), ajaxManager)
End If
'20080911 bac using ajaxManager instead of
ajaxManager.AjaxSettings.AddAjaxSetting(m_RadTreeFolderHierarchy, wrapPanel)
' Me.Controls.Add(m_RadTreeFolderHierarchy)
End Sub
| protected void Page_Init(object sender, System.EventArgs e) |
| { |
| PopulateGridOnPageInit(); |
| } |
| private bool LoadGrid() |
| { |
| //Hidden field is set true when "Load Grid" button is clicked |
| string loadGrid = Request.Form.Get(this.uxHiddenField_LoadGrid.UniqueID); |
| if (!string.IsNullOrEmpty(loadGrid)) |
| { |
| return Boolean.Parse(loadGrid); |
| } |
| else |
| { |
| return false; |
| } |
| } |
| private void PopulateGridOnPageInit() |
| { |
| RadGrid radGrid = new RadGrid(); |
| radGrid.ID = RadGridId; |
| if (!LoadGrid()) |
| { |
| radGrid.Visible = false; |
| // Add the Grid to the page |
| uxPlaceHolder.Controls.Add(radGrid); |
| return; |
| } |
| // Set properties |
| radGrid.Skin = "Vista"; |
| radGrid.PageSize = 25; |
| radGrid.AllowPaging = true; |
| radGrid.AllowCustomPaging = true; |
| radGrid.AllowSorting = true; |
| radGrid.MasterTableView.AllowCustomSorting = true; |
| radGrid.MasterTableView.EnableColumnsViewState = false; |
| radGrid.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric; |
| radGrid.ClientSettings.Selecting.AllowRowSelect = true; |
| radGrid.ClientSettings.Selecting.EnableDragToSelectRows = false; |
| radGrid.ClientSettings.Resizing.AllowColumnResize = false; |
| radGrid.ClientSettings.Resizing.ClipCellContentOnResize = false; |
| radGrid.ClientSettings.Resizing.EnableRealTimeResize = false; |
| radGrid.ClientSettings.ReorderColumnsOnClient = false; |
| radGrid.ClientSettings.AllowColumnsReorder = false; |
| radGrid.ClientSettings.ColumnsReorderMethod = GridClientSettings.GridColumnsReorderMethod.Reorder; |
| radGrid.ShowGroupPanel = false; |
| radGrid.GroupingEnabled = false; |
| radGrid.GroupPanel.Visible = false; |
| radGrid.ShowFooter = false; |
| radGrid.MasterTableView.ShowFooter = false; |
| // Selecting multiple rows (client-side) |
| radGrid.AllowMultiRowSelection = true; |
| GridClientSelectColumn gridClientSelectColumn = new GridClientSelectColumn(); |
| gridClientSelectColumn.ItemStyle.Width = Unit.Percentage(1); |
| radGrid.Columns.Add(gridClientSelectColumn); |
| // Build the columns dynamically |
| radGrid.AutoGenerateColumns = false; |
| GridBoundColumn column = new GridBoundColumn(); |
| column.DataField = "ID"; |
| column.HeaderText = "Customer Identifier"; |
| radGrid.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "Name"; |
| column.HeaderText = "Name"; |
| radGrid.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "Company"; |
| column.HeaderText = "Company"; |
| radGrid.Columns.Add(column); |
| GridTableView childTable = new GridTableView(radGrid); |
| childTable.Width = Unit.Percentage(100); |
| childTable.DataMember = "CustomerID"; |
| column = new GridBoundColumn(); |
| column.DataField = "ID"; |
| column.HeaderText = "Order Identifier"; |
| childTable.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "OrderDate"; |
| column.HeaderText = "Order Date"; |
| childTable.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "Cost"; |
| column.HeaderText = "Cost"; |
| childTable.Columns.Add(column); |
| radGrid.MasterTableView.DetailTables.Add(childTable); |
| // Wire up the method that will get the grid data |
| radGrid.NeedDataSource += new GridNeedDataSourceEventHandler(radGrid_NeedDataSource); |
| radGrid.DetailTableDataBind += new GridDetailTableDataBindEventHandler(radGrid_DetailTableDataBind); |
| // Set the key for client side selection |
| radGrid.MasterTableView.ClientDataKeyNames = new string[] { "ID" }; |
| // Set the key for server side selection |
| radGrid.MasterTableView.DataKeyNames = new string[] { "ID" }; |
| // Add the Grid to the page |
| uxPlaceHolder.Controls.Add(radGrid); |
| } |
| protected void radGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) |
| { |
| if (!e.IsFromDetailTable) |
| { |
| // Get the rad grid |
| RadGrid radGrid = (RadGrid)source; |
| // Bind it to the Grid |
| radGrid.DataSource = this.Customers; |
| // Set the count |
| radGrid.VirtualItemCount = this.Customers.Count; |
| } |
| } |
| protected void radGrid_DetailTableDataBind(object source, GridDetailTableDataBindEventArgs e) |
| { |
| GridDataItem dataItem = e.DetailTableView.ParentItem; |
| switch (e.DetailTableView.DataMember) |
| { |
| case "CustomerID": |
| List<Order> orders = GetOrdersForCustomer((int)dataItem.GetDataKeyValue("ID")); |
| e.DetailTableView.DataSource = orders; |
| e.DetailTableView.VirtualItemCount = orders.Count; |
| break; |
| default: |
| break; |
| } |
| } |