or
| Dim dt As DataTable |
| dt = ListProjects() |
| cbox.Items.Clear() |
| For Each row As DataRow In dt.Rows |
| Dim item As New RadComboBoxItem() |
| item.Text = row("Name").ToString |
| item.Value = row("ID").ToString |
| cbox.Items.Add(item) |
| Next |
| <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" GridLines="None"> |
| <MasterTableView CommandItemDisplay="TopAndBottom" AllowSorting="True"> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridDateTimeColumn DataField="DATE" DataFormatString="{0:yyyy-MM-dd}" HeaderText="Date" |
| UniqueName="DATE"> |
| </telerik:GridDateTimeColumn> |
| <telerik:GridBoundColumn DataField="REFNO" HeaderText="Ref #" UniqueName="REFNO"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="AMOUNT" HeaderText="Amount" UniqueName="AMOUNT"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="REIMBPER" HeaderText="Reimbursement%" UniqueName="REIMBPER"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="REIMBAMT" HeaderText="Reimbursement Amount" UniqueName="REIMBAMT"> |
| </telerik:GridBoundColumn> |
| <telerik:GridEditCommandColumn> |
| </telerik:GridEditCommandColumn> |
| <telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="column1"> |
| </telerik:GridButtonColumn> |
| </Columns> |
| <EditFormSettings> |
| <EditColumn UniqueName="EditCommandColumn1"> |
| </EditColumn> |
| </EditFormSettings> |
| </MasterTableView> |
| <FilterMenu EnableTheming="True"> |
| <CollapseAnimation Duration="200" Type="OutQuint" /> |
| </FilterMenu> |
| </telerik:RadGrid> |
| <script language="javascript" type="text/javascript"> |
| function onNodeDropping(sender, args) |
| { |
| var dest = args.get_destNode(); |
| if (dest) |
| { |
| clientSideEdit(sender, args); |
| args.set_cancel(true); |
| return; |
| //dropOnTree(args); |
| } |
| else |
| { |
| dropOnHtmlElement(args); |
| } |
| } |
| function clientSideEdit(sender, args) |
| { |
| if(isValidDrop(sender,args)==false) |
| { |
| args.set_cancel(true); |
| return; |
| } |
| var destinationNode = args.get_destNode(); |
| if(destinationNode) |
| { |
| var firstTreeView = $find('trvOne'); |
| var secondTreeView = $find('trvOne'); |
| firstTreeView.trackChanges(); |
| // secondTreeView.trackChanges(); |
| var sourceNodes = args.get_sourceNodes(); |
| var sourceNode = sourceNodes[0]; |
| sourceNode.get_parent().get_nodes().remove(sourceNode); |
| //if(args.get_dropPosition() == "over") destinationNode.get_nodes().add(sourceNode); |
| //if(args.get_dropPosition() == "above") insertBefore(destinationNode, sourceNode); |
| //if(args.get_dropPosition() == "below") insertAfter(destinationNode, sourceNode); |
| insertBefore(destinationNode, sourceNode); |
| //sourceNode.clone(); |
| destinationNode.set_expanded(true); |
| firstTreeView.commitChanges(); |
| //secondTreeView.commitChanges(); |
| } |
| } |
| function insertBefore(destinationNode, sourceNode) |
| { |
| var destinationParent = destinationNode.get_parent(); |
| var index = destinationParent.get_nodes().indexOf(destinationNode); |
| destinationParent.get_nodes().insert(index, sourceNode); |
| } |
| function insertAfter(destinationNode, sourceNode) |
| { |
| var destinationParent = destinationNode.get_parent(); |
| var index = destinationParent.get_nodes().indexOf(destinationNode); |
| destinationParent.get_nodes().insert(index+1, sourceNode); |
| } |
| function isValidDrop(sender, args) |
| { |
| var tree = $find('trvOne'); |
| var sourceNode = args.get_sourceNode(); |
| var destinationNode = args.get_destNode(); |
| var sourceNodeLevel; |
| var destinationNodeLevel; |
| sourceNodeLevel=getNodeLevel(sourceNode); |
| destinationNodeLevel=getNodeLevel(destinationNode); |
| if(sourceNodeLevel==destinationNodeLevel) |
| return true; |
| else |
| return false; |
| /* |
| if(!sourceNode.get_parent()) |
| { |
| args.set_cancel(true); |
| tree._clearDrag(); |
| return false; |
| } |
| if(sourceNode.get_parent() && !(sourceNode.get_parent().get_parent())) |
| { |
| args.set_cancel(true); |
| tree._clearDrag(); |
| return false; |
| } |
| if(sourceNode.get_parent() && sourceNode.get_parent().get_parent() && !(sourceNode.get_parent().get_parent().get_parent())) |
| { |
| args.set_cancel(true); |
| tree._clearDrag(); |
| return false; |
| } |
| */ |
| } |
| function getNodeLevel(node) |
| { |
| var FirstParent; |
| var SecondParent; |
| var ThirdParent; |
| var Level; |
| FirstParent=node.get_parent(); |
| if(FirstParent) |
| SecondParent=FirstParent.get_parent(); |
| if(SecondParent) |
| ThirdParent=SecondParent.get_parent(); |
| if(ThirdParent) |
| Level=3; |
| else if(SecondParent) |
| Level=2; |
| else if(FirstParent) |
| Level=1; |
| return Level; |
| } |
| function dropOnHtmlElement(args) |
| { |
| var target = args.get_htmlElement(); |
| if (target.tagName == "SELECT" && target.id=='lstShortCut') |
| { |
| if(getNodeLevel(args.get_sourceNode())!=3) |
| { |
| args.set_cancel(true); |
| return; |
| } |
| target.style.cursor = "default"; |
| //target.value = args.get_sourceNode().get_text(); |
| var sourceNodeValue=args.get_sourceNode().get_value(); |
| for(var i=0;i<target.options.length;i++) |
| { |
| if(target.options[i].value==sourceNodeValue) |
| { |
| args.set_cancel(true); |
| return true; |
| } |
| } |
| var newnewOpt = new Option( args.get_sourceNode().get_text(), args.get_sourceNode().get_value(), true, false); |
| target.options[target.options.length] = newOpt; |
| args.set_cancel(true); |
| return true; |
| } |
| } |
| </script> |
| <radT:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <radT:AjaxSetting AjaxControlID="trvOne"> |
| <UpdatedControls> |
| <radT:AjaxUpdatedControl ControlID="trvOne" /> |
| </UpdatedControls> |
| </radT:AjaxSetting> |
| </AjaxSettings> |
| </radT:RadAjaxManager> |
| <radT:RadTreeView ID="trvOne" runat="server" |
| EnableViewState="true" SingleExpandPath="true" EnableDragAndDrop="true" OnClientNodeDropping="onNodeDropping" Height="350px"> |