<%@ Control Language="c#" AutoEventWireup="True" Codebehind="DragnDrop.ascx.cs" Inherits="ASPNETExpert.WebControls.Demo.Tree.Advanced.DragnDrop" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<%@ Register TagPrefix="ec" Namespace="ASPNETExpert.WebControls" Assembly="ASPNETExpert.WebControls" %>
<%@ Register TagPrefix="etd" TagName="ColorPicker" Src="../Controls/ColorPicker.ascx" %>
<%@ Register TagPrefix="ecd" Namespace="ASPNETExpert.WebControls.DemoControls" Assembly="ASPNETExpert.WebControls.DemoControls" %>
<script language="javascript">
function BeforeDragHandler(node) {
return node.Value != "DisableDrag";
}
function AfterDropHandler(dragnDrop) {
if(dragnDrop.GetTargetNode() && confirm('Move ' + dragnDrop.GetSourceNodes()[0].Text + ' To ' + dragnDrop.GetTargetNode().Text + '?'))
dragnDrop.ClientNodeMove();
}
</script>
<table cellSpacing="0" cellPadding="0" border="0" xmlns:ec="urn:http://aspnetexpert.com/ExpertControls.xsd">
<tr>
<td valign=top>
<ec:ExpertTree id="DragnDropTree" runat="server" DragAndDropEnabled="true" Drop="ScriptResolved">
<OnClientBefore NodeDragHandler="BeforeDragHandler" />
<OnClientAfter NodeDropHandler="AfterDropHandler" />
<TreeLook Width="260" Height="460px" Overflow="Scroll" />
<Looks>
<ec:TreeNodeLook Runat="server" Id="Parent" BindStrategy="AutoBind">
<InitLook>
<ExpandButton Width="11px" Height="11px" ImageResourceUrl="XP.ExpandButton.gif" />
<NodeIcon Width="16px" Height="16px" Padding-Left="3px" Padding-Right="3px" />
<TextSection ForeColor="Black" Font-Name="Tahoma,Verdana,Arial" Font-Size="12px" Padding-Top="2px" Padding-Left="5px" Padding-Bottom="2px" Padding-Right="5px" Cursor="Default" />
</InitLook>
<HoveredLook>
<TextSection ForeColor="#000066" Font-Name="Tahoma,Verdana,Arial" Font-Size="12px" Font-Decoration="Underline" />
</HoveredLook>
<ExpandedLook>
<ExpandButton Width="11px" Height="11px" ImageResourceUrl="XP.CollapseButton.gif" />
</ExpandedLook>
<SelectedLook>
<TextSection ForeColor="White" Background-Color="#2060C0" Padding-Top="1px" Padding-Left="4px" Padding-Bottom="1px" Padding-Right="4px" Border-Style="Dotted" Border-Color="#CE953A" Border-Width="1px" />
</SelectedLook>
<SelectedHoveredLook>
<TextSection ForeColor="White" Background-Color="#2060C0" Padding-Top="1px" Padding-Left="4px" Padding-Bottom="1px" Padding-Right="4px" Border-Style="Dotted" Border-Color="#CE953A" Border-Width="1px" Font-Name="Tahoma,Verdana,Arial" Font-Size="12px" Font-Decoration="Underline" />
</SelectedHoveredLook>
<DisabledLook>
<TextSection ForeColor="#808080" />
</DisabledLook>
<SubTree>
<Expand Effect="GlideTopToBottom" Duration="400" />
<Collapse Effect="GlideTopToBottom" Duration="400" />
</SubTree>
</ec:TreeNodeLook>
<ec:TreeNodeLook Id="TemplatedNode">
<InitLook>
<ExpandButton Width="11px" Height="11px" ImageResourceUrl="XP.ExpandButton.gif" />
</InitLook>
<ExpandedLook>
<ExpandButton Width="11px" Height="11px" ImageResourceUrl="XP.CollapseButton.gif" />
</ExpandedLook>
<SubTree>
<Expand Effect="GlideTopToBottom" Duration="400" />
<Collapse Effect="GlideTopToBottom" Duration="400" />
</SubTree>
</ec:TreeNodeLook>
<ec:TemplateLook Id="CalendarTemplate">
<LookTemplate>
<table cellpadding=0 cellspacing=0 border=0 class="Calendar">
<tr>
<td>
<asp:calendar runat="server" SelectedDate="<%#DateTime.Today%>" DayNameFormat="FirstTwoLetters" CssClass="Calendar" selecteddaystyle-backcolor="silver" style="border-color:white;" width="140" PrevMonthText="<<" NextMonthText=">>">
<TitleStyle CssClass="CalendarTitle" BackColor="#D7D7E5"></TitleStyle>
<SelectedDayStyle BackColor="#FBE694" ForeColor="#000000" BorderWidth="1px" BorderColor="#BB5503" Font-Bold="true"></SelectedDayStyle>
<DayHeaderStyle Font-Bold="True"></DayHeaderStyle>
<OtherMonthDayStyle ForeColor="#999999"></OtherMonthDayStyle>
</asp:calendar>
</td>
</tr>
</table>
</LookTemplate>
</ec:TemplateLook>
</Looks>
<Nodes>
<ec:TreeNode Expanded="true" Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/Desktop.gif" Text="Desktop">
<Nodes>
<ec:TreeNode Expanded="true" Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/MyDocuments.gif" Text="My Documents">
<Nodes>
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/MyPictures.gif" Text="My Pictures" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/MyMusic.gif" Text="My Music" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/MyPictures.gif" Text="My Background" Expanded="true">
<Nodes>
<ec:TreeNode Value="Gold">
<Look Base="TemplatedNode">
<InitLook>
<TemplateLook Id="ColorPickerTemplate">
<LookTemplate>
<etd:ColorPicker runat="server" SelectedColor=<%#DataBinder.Eval(Container.DataObject, "Value")%> ID="Colorpicker2" NAME="Colorpicker2"/>
</LookTemplate>
</TemplateLook>
</InitLook>
</Look>
</ec:TreeNode>
</Nodes>
</ec:TreeNode>
</Nodes>
</ec:TreeNode>
<ec:TreeNode Expanded="true" Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/MyComputer.gif" Text="My Computer">
<Nodes>
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/FloppyDrive.gif" Text="31/2 Floppy (A:)" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/LocalDrive.gif" Text="Local Disk (C:)" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/LocalDrive.gif" Text="New Volume (D:)" />
</Nodes>
</ec:TreeNode>
<ec:TreeNode Expanded="true" Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/ControlPanel.gif" Text="Control Panel">
<Nodes>
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/AdminTools.gif" Text="Administrative Tools" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/Fonts.gif" Text="Fonts" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/NetworkConn.gif" Text="Network Connections" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/PrintersAndFaxes.gif" Text="Printers And Faxes" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/ScannersAndCameras.gif" Text="Scanners And Cameras" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/ScheduledTasks.gif" Text="Scheduled Tasks" />
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/Calendar.gif" Text="Calendar (Not Draggable)" Value="DisableDrag" Expanded="true">
<Nodes>
<ec:TreeNode Value="DisableDrag" Look-Base="TemplatedNode" Look-InitLook-TemplateLook-Base="CalendarTemplate" />
</Nodes>
</ec:TreeNode>
</Nodes>
</ec:TreeNode>
<ec:TreeNode Look-InitLook-NodeIcon-ImageUrl="../images/Explorer/RecycleBin.gif" Text="Recycle Bin (Not Draggable)" IsDraggable="false" />
</Nodes>
</ec:TreeNode>
</Nodes>
</ec:ExpertTree>
</td>
<td style="PADDING-LEFT: 30px" vAlign="top">
<table cellSpacing="0" cellPadding="0" border="0">
<tr>
<td><asp:CheckBox ID="DragAndDropEnabled" Runat=server CssClass="formtext" Text="Enable Drag-and-Drop" Checked=True AutoPostBack=True></asp:CheckBox>
</td>
</tr>
<tr>
<td style="PADDING-TOP: 10px"><span class="formtext">DropAction</span>
</td>
</tr>
<tr>
<td><asp:radiobuttonlist id="DropActionList" CellSpacing="0" CellPadding="2" Font-Size="8" Font-Names="Verdana, Tahoma, Arial"
RepeatDirection="Vertical" AutoPostBack="True" Runat="server">
<asp:ListItem Value="AutoPostBack">AutoPostBack</asp:ListItem>
<asp:ListItem Value="AutoClientNodeMove">AutoClientNodeMove</asp:ListItem>
<asp:ListItem Selected="True" Value="ScriptResolved">Script Resolved</asp:ListItem>
</asp:radiobuttonlist></td>
</tr>
<tr>
<td valign=top style="padding-left:10px;">
<ecd:DescriptionView runat="server" ID="Descriptionview1">
<ecd:Description id="Description1" runat="server">
Set <b>DragAndDropEnabled="true"</b> for the tree to enable drag and drop all nodes.
</ecd:Description>
<ecd:Description id="Description2" runat="server">
Set <b>IsDraggable="false"</b> property for an individual node to disable dragging it.
</ecd:Description>
<ecd:Description id="Description3" runat="server">
Set tree's <b>Drop</b> property to one of the values:</p>
<ul>
<li><b>AutoPostBack</b> - to raise PostBack and server-side <b>NodeMoved</b> event when the node is dropped.</li>
<li><b>AutoClientNodeMove</b> - to move the node at the client side.</li>
<li><b>ScriptResolved</b> - to call a client-side event handler.</li>
</ul>
To define a client-side drop event handler use the following :
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="ASPX" ID="Syntaxhighlight4">
<OnClientAfter NodeDropHandler="AfterDropHandler" />
</ecd:SyntaxHighlight>
</pre>
<b>AfterDropHandler</b> is the name of a function that will be called after a
node is dropped. This function accepts a single parameter of type <b>DragnDrop</b>.
See client API docs for more information regarding client objects and their methods.
</ecd:Description>
</ecd:DescriptionView>
</td>
</tr>
</table>
</td>
</tr>
</table>
<ec:CodeViewTab id="CodeViewTab1" runat="server">
<ec:TabItem runat="server" Text="aspx" ID="Tabitem1">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="ASPX" OutputFile="Advanced/DragnDrop.ascx" ID="Syntaxhighlight1"/>
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="C#" ID="Tabitem2">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="C#" OutputFile="Advanced/DragnDrop.ascx.cs" ID="Syntaxhighlight2"/>
</pre>
</ec:TabItem>
<ec:TabItem runat="server" Text="VB" ID="Tabitem3">
<pre class="aspcode">
<ecd:SyntaxHighlight runat="server" ContentType="VB" OutputFile="Advanced/DragnDrop_vb.ascx.vb" ID="Syntaxhighlight3"/>
</pre>
</ec:TabItem>
</ec:CodeViewTab>