<telerik:RadGrid ID="RadGridDocuments" runat="server" CellSpacing="-1" GridLines="Both" AutoGenerateColumns="false" OnItemDataBound="RadGridDocuments_ItemDataBound" OnPreRender="RadGridDocuments_PreRender"> <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView EditMode="InPlace"> <Columns> <telerik:GridBoundColumn DataField="FileName" HeaderText="File Name" UniqueName="FileName" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridDropDownColumn UniqueName="Type" HeaderText="Type" DataField="Type" EmptyListItemText="--Choose an option--" EmptyListItemValue=""> </telerik:GridDropDownColumn> </Columns> </MasterTableView> </telerik:RadGrid>protected void ButtonAddDetails_Click(object sender, EventArgs e) { List<Document> docs = new List<Document>(); foreach (UploadedFile f in RadAsyncUploadDocuments.UploadedFiles) { docs.Add(new Document(f)); } RadGridDocuments.DataSource = docs; RadGridDocuments.DataBind(); } protected void RadGridDocuments_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) { if (e.Item is GridEditableItem && e.Item.IsInEditMode) { GridEditableItem editedItem = e.Item as GridEditableItem; GridEditManager editMan = editedItem.EditManager; GridDropDownListColumnEditor editor = (GridDropDownListColumnEditor)(editMan.GetColumnEditor("Type")); //in case you have RadComboBox editor for the GridDropDownColumn (this is the default editor), //you will need to use ComboBoxControl below instead of DropDownListControl //and add RadComboBoxItems instead of ListItems to the Items collection of the editor editor.ComboBoxControl.Items.Add(new RadComboBoxItem("FAA Administrator's Order", "FAA Administrator's Order")); editor.ComboBoxControl.Items.Add(new RadComboBoxItem("Notice of Appeal", "Notice of Appeal")); } } protected void RadGridDocuments_PreRender(object sender, System.EventArgs e) { foreach (GridItem item in RadGridDocuments.MasterTableView.Items) { if (item is GridEditableItem) { GridEditableItem editableItem = item as GridDataItem; editableItem.Edit = true; } } RadGridDocuments.Rebind(); }public class Document { private UploadedFile file; private string type; public Document(UploadedFile file) { this.file = file; this.type = string.Empty; } public UploadedFile File { get { return this.file; } } public string FileName { get { return this.file.FileName; } } public string Type { get { return this.type; } set { this.type = value; } } }
<tr style="vertical-align:middle; width:100%">
<td style="vertical-align:middle; width:100%">
<telerik:RadSplitter ID="trsCWCMPrimary" runat="server" BorderWidth="0" BorderSize="0" BorderStyle="None" Height="520px" LiveResize="true" Orientation="Vertical" ResizeMode="Proportional" Width="100%">
<telerik:RadPane ID="trpCWCMPrimaryTree" runat="server" Collapsed="false" Width="20%">
<telerik:RadTreeView ID="trtvCWCMPrimary" runat="server" CssClass="sfecua_chkrdo_dataLeftSmall" Height="99%" Width="100%" OnNodeClick="trtvCWCMPrimary_NodeClick" OnNodeCollapse="trtvCWCMPrimary_NodeCollapse" OnNodeExpand="trtvCWCMPrimary_NodeExpand" onclientnodeclicking="OnClientNodeClicking">
</telerik:RadTreeView>
</telerik:RadPane>
<telerik:RadSplitBar ID="trsbPrimarySecondary" runat="server" CollapseMode="Forward"></telerik:RadSplitBar>
<telerik:RadPane ID="trpCWCMSecondaryTableDetails" runat="server">
<div id="divCustomerMgmt" style="display:block; border:none;">
<iframe runat="server" src="./../CustWaitLoading.aspx" id="ifrmCWCMCustCustomerMgmt" name="ifrmCWCMCustCustomerMgmt" width="100%" height="100%" marginwidth="0" frameborder="0" scrolling="no">Customer Mgmt IFRAME</iframe>
</div>
<div id="divAccountMgmt" style="display:none; border:none;">
<iframe runat="server" src="./../CustWaitLoading.aspx" id="ifrmCWCMCustAccountMgmt" name="ifrmCWCMCustAccountMgmt" width="100%" height="100%" marginwidth="0" frameborder="0" scrolling="no">Account Mgmt IFRAME</iframe>
</div>
<div id="divBillingMgmt" style="display:none; border:none;">
<iframe runat="server" src="./../CustWaitLoading.aspx" id="ifrmCWCMCustBillingMgmt" name="ifrmCWCMCustBillingMgmt" width="100%" height="100%" marginwidth="0" frameborder="0" scrolling="no">Billing Mgmt IFRAME</iframe>
</div>
</telerik:RadPane>
</telerik:RadSplitter>
</td>
</tr>


01.<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>02. 03.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">04. 05.<html xmlns="http://www.w3.org/1999/xhtml">06.<head runat="server">07. <title></title>08. <telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" />09.</head>10.<body>11. <form id="form1" runat="server">12. <telerik:RadScriptManager ID="RadScriptManager1" runat="server">13. <Scripts>14. <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />15. <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />16. <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />17. </Scripts>18. </telerik:RadScriptManager>19. <script type="text/javascript">20. //<!--21. function onClientContextMenuShowing(sender, args) {22. var treeNode = args.get_node();23. treeNode.set_selected(true);24. //enable/disable menu items25. setMenuItemsState(args.get_menu().get_items(), treeNode);26. }27. 28. function onClientContextMenuItemClicking(sender, args) {29. var menuItem = args.get_menuItem();30. var treeNode = args.get_node();31. 32. menuItem.get_menu().hide();33. 34. switch (menuItem.get_value()) {35. case "Copy":36. break;37. case "Rename":38. treeNode.startEdit();39. break;40. case "NewFolder":41. break;42. case "Delete":43. var result = confirm("Are you sure you want to delete the item: " + treeNode.get_text());44. args.set_cancel(!result);45. break;46. }47. }48. 49. //this method disables the appropriate context menu items50. function setMenuItemsState(menuItems, treeNode) {51. for (var i = 0; i < menuItems.get_count() ; i++) {52. var menuItem = menuItems.getItem(i);53. switch (menuItem.get_value()) {54. case "NewFolder":55. //nothing56. break;57. default:58. if (treeNode.get_parent() == treeNode.get_treeView()) {59. menuItem.set_enabled(false);60. }61. else {62. menuItem.set_enabled(true);63. }64. break;65. }66. }67. }68. //-->69. </script>70. <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdatePanelsRenderMode="Inline">71. </telerik:RadAjaxManager>72. <telerik:RadWindowManager ID="RadWindowManager1" runat="server"></telerik:RadWindowManager>73. <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel2" runat="server" Skin="Default"></telerik:RadAjaxLoadingPanel>74. <telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server" LoadingPanelID="RadAjaxLoadingPanel2">75. <telerik:RadTreeView ID="rtvSavedReports" runat="server" AllowNodeEditing="True" EnableDragAndDrop="False" EnableDragAndDropBetweenNodes="False" OnContextMenuItemClick="rtvSavedReports_ContextMenuItemClick"76. OnClientContextMenuItemClicking="onClientContextMenuItemClicking" OnClientContextMenuShowing="onClientContextMenuShowing"77. OnNodeEdit="rtvSavedReports_NodeEdit">78. <ContextMenus>79. <telerik:RadTreeViewContextMenu ID="MainContextMenu" runat="server">80. <Items>81. <telerik:RadMenuItem Value="Copy" Text="Copy ..." ImageUrl="~/images/10.gif">82. </telerik:RadMenuItem>83. <telerik:RadMenuItem Value="Rename" Text="Rename ..." Enabled="false" ImageUrl="~/images/rename.gif">84. </telerik:RadMenuItem>85. <telerik:RadMenuItem Value="NewFolder" Text="New Folder" ImageUrl="~/images/12.gif">86. </telerik:RadMenuItem>87. <telerik:RadMenuItem Value="Delete" Text="Delete Folder" ImageUrl="~/images/7.gif">88. </telerik:RadMenuItem>89. </Items>90. <CollapseAnimation Type="none"></CollapseAnimation>91. </telerik:RadTreeViewContextMenu>92. </ContextMenus>93. </telerik:RadTreeView>94. </telerik:RadAjaxPanel>95. </form>96.</body>97.</html>01.Imports Telerik.Web.UI02. 03.Partial Class Default204. Inherits System.Web.UI.Page05. 06. Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load07. If Not IsPostBack Then08. PopulateSaveTrees()09. End If10. End Sub11. 12. 13. Private Sub PopulateSaveTrees()14. Dim savedTreeXML As Object = GetSavedTree()15. If savedTreeXML Is DBNull.Value Then16. 'first time create17. rtvSavedReports.LoadXml("<Tree><Node Text=""Saved Reports"" Value=""/"" AllowEdit=""False"" ImageUrl=""~/images/folder.png""/></Tree>")18. Else19. rtvSavedReports.LoadXml(savedTreeXML)20. End If21. End Sub22. 23. 24. Protected Sub rtvSavedReports_ContextMenuItemClick(sender As Object, e As RadTreeViewContextMenuEventArgs) Handles rtvSavedReports.ContextMenuItemClick25. Dim clickedNode As RadTreeNode = e.Node26. 27. Select Case e.MenuItem.Value28. Case "Copy"29. Dim clonedNode As RadTreeNode = clickedNode.Clone()30. clonedNode.Text = String.Format("Copy of {0}", clickedNode.Text)31. clickedNode.InsertAfter(clonedNode)32. 'set node's value so we can find it in startNodeInEditMode33. clonedNode.Value = clonedNode.GetFullPath("/")34. clonedNode.Selected = True35. StartNodeInEditMode(clonedNode.Value)36. Case "NewFolder"37. Dim newFolder As New RadTreeNode(String.Format("New Folder {0}", clickedNode.Nodes.Count + 1))38. newFolder.Selected = True39. newFolder.ImageUrl = clickedNode.ImageUrl40. clickedNode.Nodes.Add(newFolder)41. clickedNode.Expanded = True42. newFolder.Value = newFolder.GetFullPath("/")43. StartNodeInEditMode(newFolder.Value)44. Case "Delete"45. If clickedNode.Nodes.Count <> 0 Then46. RadScriptManager.RegisterStartupScript(Page, Page.[GetType](), "nodedeleteerror", "alert('Cannot delete node with children!\nEither delete or move all children.');", True)47. Exit Select48. End If49. clickedNode.Remove()50. End Select51. End Sub52. 53. Private Sub StartNodeInEditMode(ByVal nodeValue As String)54. 'find the node by its Value and edit it when page loads55. Dim js As String = "Sys.Application.add_load(editNode); function editNode(){ "56. js += "var tree = $find(""" + rtvSavedReports.ClientID + """);"57. js += "var node = tree.findNodeByValue('" + nodeValue + "');"58. js += "if (node) node.startEdit();"59. js += "Sys.Application.remove_load(editNode);};"60. 61. RadScriptManager.RegisterStartupScript(Page, Page.[GetType](), "nodeEdit", js, True)62. End Sub63. 64. Protected Sub rtvSavedReports_NodeEdit(sender As Object, e As RadTreeNodeEditEventArgs) Handles rtvSavedReports.NodeEdit65. e.Node.Text = e.Text66. End Sub67. 68. Private Function GetSavedTree() As Object69. Return DBNull.Value70. End Function71. 72.End Class