[CLOSED] DropTarget Not working in razor syntax

  1. #1

    [CLOSED] DropTarget Not working in razor syntax

    Hi there,

    There seems to be some issues with DropTarget in razor syntax. When trying to instantiate it like so:
    containers.Add(Html.X().DropTarget()
                    .Target("abcd"));
    I get the following compilation error:
    Argument 1: cannot convert from 'Ext.Net.DropTarget.Builder' to 'Ext.Net.AbstractComponent.Builder<Ext.Net.Contain er,Ext.Net.Container.Builder>'
    Last edited by Daniil; May 02, 2012 at 9:51 PM. Reason: [CLOSED]
  2. #2
    Hi,

    What is 'containers'?
    Don't you have same issue in WebForm? Can you post how it looks in WebForm engine?
  3. #3
    I think I've solved my initial problem but I'm trying to basically replicate https://examples2.ext.net/#/DragDrop...ropable_Panel/ in Razor syntax but I can't figure out how to do the page_load stuff:
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            foreach (Container region in ViewPort1.Items)
            {
                Ext.Net.Panel p = (Ext.Net.Panel)region.Items[0];
    
                p.DraggablePanelConfig = new DragSource
                {
                    Group = "panelDD",
                    StartDrag = 
                    {
                        Fn = "startDrag"
                    },
                    
                    EndDrag =
                    {
                        Fn = "endDrag"
                    }
                };
            }
        }
    </script>
    How can I achieve the above in razor syntax?
  4. #4
    Hi,

    Please investigate the example.

    The key points are:

    1. Defining a variable
    @{var viewport = Html.X().Viewport() ... }
    2. ToComponent calling here:
    @foreach (Container region in viewport.ToComponent().Items)
    3. Rendering the viewport valirable.
    @viewport
    Example
    <!DOCTYPE html>
    @{
        Layout = "";       
    }
    <html>
    <head>
        <title>Ext.NET Razor Example</title>
    
        <style type="text/css">
            .invite {
                background-color : #99bbe8 !important;
            }
            
            .x-drop-marker {
                background-color : silver;
            }
        </style>
    
        <script type="text/javascript">
            var notifyDrop = function (source, e, data) {
                var targetCt = Ext.getCmp(this.el.dom.id),
                    targetPanel = targetCt.items.get(0),
                    sourceCt = data.panel.ownerCt;
    
                sourceCt.add(targetPanel);
                targetCt.add(data.panel);
    
                Ext.defer(function () {
                    targetPanel.doLayout();
                    data.panel.doLayout();
                }, 1);
            };
    
            var startDrag = function () {
                Ext.select(".dropable").addCls("x-drop-marker");
                Ext.select(".draggable").hide();
                this.panelProxy.moveOnDrag = false;
            };
    
            var endDrag = function () {
                Ext.select(".dropable").removeCls("x-drop-marker");
                Ext.select(".draggable").show();
                Ext.panel.DD.prototype.endDrag.apply(this, arguments);
            };
        </script>
    </head>
    <body>
        @Html.X().ResourceManager()
        @{var viewport = Html.X().Viewport()
            .Layout(LayoutType.Border)
            .Items(itemsViewport =>
            {
                itemsViewport.Add(Html.X().Container()
                    .Region(Region.North)
                    .Cls("dropable")
                    .Layout(LayoutType.Fit)
                    .Height(100)
                    .Margins("10 10 5 10")
                    .Items(itemsNorth =>
                        itemsNorth.Add(Html.X().Panel()
                            .Cls("draggable")
                            .Title("North")
                        )
                    )
                );
                itemsViewport.Add(Html.X().Container()
                    .Region(Region.East)
                    .Cls("dropable")
                    .Layout(LayoutType.Fit)
                    .Width(200)
                    .Margins("5 10 5 10")
                    .Items(itemsEast =>
                        itemsEast.Add(Html.X().Panel()
                            .Cls("draggable")
                            .Title("East")
                        )
                    )
                );
                itemsViewport.Add(Html.X().Container()
                    .Region(Region.West)
                    .Cls("dropable")
                    .Layout(LayoutType.Fit)
                    .Width(200)
                    .Margins("5 10 5 10")
                    .Items(itemsWest =>
                        itemsWest.Add(Html.X().Panel()
                            .Cls("draggable")
                            .Title("West")
                        )
                    )
                );
                itemsViewport.Add(Html.X().Container()
                    .Region(Region.South)
                    .Cls("dropable")
                    .Layout(LayoutType.Fit)
                    .Height(100)
                    .Margins("5 10 10 10")
                    .Items(itemsSouth =>
                        itemsSouth.Add(Html.X().Panel()
                            .Cls("draggable")
                            .Title("South")
                        )
                    )
                );
                itemsViewport.Add(Html.X().Container()
                    .Region(Region.Center)
                    .Cls("dropable")
                    .Layout(LayoutType.Fit)
                    .Margins("5 0 5 0")
                    .Items(itemsCenter =>
                        itemsCenter.Add(Html.X().Panel()
                            .Cls("draggable")
                            .Title("Center")
                            .BodyPadding(5)
                            .Html("Drag/Drop Panel Headers to a different Viewport Region")
                        )
                    )
                );
            });
        }
    
       @foreach (Container region in viewport.ToComponent().Items)
        {
            Ext.Net.Panel p = (Ext.Net.Panel)region.Items[0];
    
            p.DraggablePanelConfig = new DragSource
            {
                Group = "panelDD",
                StartDrag = 
                {
                    Fn = "startDrag"
                },
                    
                EndDrag =
                {
                    Fn = "endDrag"
                }
            };
        }
    
        @viewport
    
        @(Html.X().DropTarget()
            .Target("${.dropable}")
            .Group("panelDD")
            .OverClass("invite")
            .NotifyDrop(f =>
                f.Fn = "notifyDrop"
            )
            .NotifyOut(f =>
                f.Handler = "this.el.removeCls('invite');"
            )
            .NotifyOver(f =>
                f.Handler = "Ext.select('.dropable').removeCls('invite'); this.el.addCls('invite');"
            )
        )
    </body>
    </html>

Similar Threads

  1. [CLOSED] Razor syntax inside Ext Controls
    By mcfromero in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Aug 08, 2012, 7:29 PM
  2. [CLOSED] ImageCommand missing in Razor syntax
    By machinableed in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: Apr 16, 2012, 12:05 PM
  3. Replies: 6
    Last Post: Apr 09, 2012, 3:33 PM
  4. [CLOSED] Razor Syntax for ListConfig on a combobox
    By machinableed in forum 2.x Legacy Premium Help
    Replies: 6
    Last Post: Mar 27, 2012, 2:31 PM
  5. [CLOSED] Razor syntax for adding a partial view to a Panel
    By machinableed in forum 2.x Legacy Premium Help
    Replies: 1
    Last Post: Feb 23, 2012, 9:55 AM

Tags for this Thread

Posting Permissions