Here's my code that adds contrlos, called from :
' 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