[CLOSED] Grid Pin editor with drop down box

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    [CLOSED] Grid Pin editor with drop down box

    Hi,

    I am facing one weird issue like when I am trying to modify any drop down column means in that I am not able to see selected drop down item name once after I clicked the pin editor. Below I mentioned reproducible sample.

    Thanks in advance.

    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace UAT28942.Models
    {
        public class JobOrderDeliverableExtension
        {
            #region Public Properties
    
            public string RowId { get; set; }        
            public string DeliverableName { get; set; }        
            public int TurnAroundTypeId { get; set; }
            public string TurnAroundTypeName { get; set; }        
    
            #endregion
        }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using UAT28942.Models;
    using Ext.Net.Utilities;
    using System.Web.Mvc;
    
    namespace UAT28942.ReUsable
    {
        public class AjaxDataHelperController : Controller
        {
            public AjaxStoreResult GetAllTurnAroundTypes()
            {
    
                try
                {
                    List<object> data = new List<object>();
    
                    for (int i = 0; i < 10; i++)
                    {
                        data.Add
                            (
                            new
                            {
                                Id = i,
                                Name = string.Format("{0} - {1}", "Turn Around", i.ToString())
                            }
                            );
                    }
    
                    return new AjaxStoreResult(data);
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
            public AjaxStoreResult GetDeliverables()
            {
    
                try
                {
                    List<JobOrderDeliverableExtension> _list = new List<JobOrderDeliverableExtension>();
                    for (int i = 0; i < 10; i++)
                    {
                        _list.Add(new JobOrderDeliverableExtension
                        {
                            DeliverableName = string.Format("{0} - {1}", "Deliverable", i.ToString()),
                            RowId = Guid.NewGuid().ToString(),
                            TurnAroundTypeId = i,
                            TurnAroundTypeName = string.Format("{0} - {1}", "Turn Around", i.ToString())
                        });
                    }
    
                    int total = _list.Count();
    
                    return new AjaxStoreResult(_list, total);
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
    }
    
    @using Ext.Net;
    @using Ext.Net.MVC;
    @{
        ViewBag.Title = "Deliverable";
        Layout = null;
    }
    <!DOCTYPE html>
    <html>
    <head>
        <title>@ViewBag.Title</title>
        <link type="text/css" rel="stylesheet" href="http://speed.ext.net/www/intro/css/main.css" />
        <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
        <script type="text/javascript">
    
            function createUUID() {
                var s = [];
                var hexDigits = "0123456789abcdef";
                for (var i = 0; i < 36; i++) {
                    s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
                }
                s[14] = "4";  // bits 12-15 of the time_hi_and_version field to 0010
                s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);  // bits 6-7 of the clock_seq_hi_and_reserved to 01
                s[8] = s[13] = s[18] = s[23] = "-";
    
                var uuid = s.join("");
                return uuid;
            }
    
            function hashCode(str) {
                try {
                    var hash = 1315423911;
                    for (var i = 0; i < str.length; i++) {
                        hash ^= ((hash << 5) + str.charCodeAt(i) + (hash >> 2));
                    }
                    return (hash & 0x7FFFFFFF);
                } catch (e) {
    
                }
            }
    
            var GenerateHashCode = function (value, record) {
                try {
                    if (value != null && value != undefined && value != "" && value.length > 0) {
                        return hashCode(value);
                    }
                    else {
                        return hashCode(createUUID());
                    }
                } catch (e) {
                    Ext.Msg.alert('Error', e.message);
                }
            };
    
            var pinEditors = function (btn, pressed) {
                var columnConfig = btn.column,
                    column = columnConfig.column;
    
                if (pressed) {
                    column.pinOverComponent();
                    column.showComponent(columnConfig.record, true);
                } else {
                    column.unpinOverComponent();
                    column.hideComponent(true);
                }
            };
    
            var turnAroundRendererelecdel = function (value) {
                try {
    
                    var comboName = "";
    
                    if (App.turnAroundStoreelecdel != undefined && App.turnAroundStoreelecdel.data != undefined
                        && App.turnAroundStoreelecdel.data.items.length > 0) {
                        var result = $.grep(App.turnAroundStoreelecdel.data.items, function (e) { return e.data.Id == parseInt(value); });
                        if (result != null && result != undefined && result.length > 0) {
                            comboName = result[0].data.Name;
                        }
                    }
                    else if (App.electronicdel != undefined && App.electronicdel.data != undefined
                            && App.electronicdel.data.items.length > 0) {
                        var result = $.grep(App.electronicdel.data.items,
                    function (e) { return e.data.TurnAroundTypeId == parseInt(value); });
                        if (result != null && result != undefined && result.length > 0) {
                            comboName = result[0].data.TurnAroundTypeName;
                        }
                    }
    
                    return comboName;
    
                } catch (e) {
    
                }
            }
    
        </script>
    </head>
    <body>
        @(Html.X().ResourceManager())
        @(
     Html.X().GridPanel()
    .EmptyText("No Electronic Deliverable(s) selected")
    .Title("Electronic Deliverable(s)")
    .Layout(LayoutType.Fit)
    .ID("GridElectDeliverable")
    .AutoRender(false)
    .Border(true)
    .Store(storeitem =>
    {
        storeitem.Add(
        Html.X().Store()
        .ID("electronicdel")
        .IsPagingStore(false)
        .AutoLoad(true)
        .RemoteSort(false)
        .RemotePaging(false)
        .Proxy(proxy => proxy.Add(Html.X().AjaxProxy()
        .Url(Url.Content("~/AjaxDataHelper/GetDeliverables/"))
        .Reader(reader => reader.Add(Html.X().JsonReader()
        .Root("data")
        ))
        ))
        .Model(model => model.Add(Html.X().Model()
    
        .IDProperty("RowId")
        .Fields(fields =>
        {
            fields.Add(Html.X().ModelField().Name("RowId").Convert(extconvert =>
            {
                extconvert.Fn = "GenerateHashCode";
            }));
            fields.Add(Html.X().ModelField().Name("DeliverableName"));
            fields.Add(Html.X().ModelField().Name("TurnAroundTypeId"));
            fields.Add(Html.X().ModelField().Name("TurnAroundTypeName"));
        })
        ))
        .Sorters(storesorters =>
        {
            storesorters.Add(
            Html.X().DataSorter()
            .Property("DeliverableName")
            .Direction(Ext.Net.SortDirection.ASC)
            );
        })
        );
    })
    .ColumnModel(
    Html.X().Column()
    .Text("Item Name")
    .DataIndex("DeliverableName")
    .Sortable(true)
    .Flex(1)
    .MenuDisabled(true),
    
    Html.X().ComponentColumn()
    .OverOnly(true)
    .Editor(true)
    .Pin(true)
    .Text("Turn Around")
    .DataIndex("TurnAroundTypeId")
    .Width(200)
    .Sortable(true)
    .PinEvents("expand")
    .UnpinEvents("collapse")
    .Renderer(new Ext.Net.Renderer
    {
        Fn = "turnAroundRendererelecdel"
    })
    .MenuDisabled(true)
    .Component(extcomponent =>
    {
        extcomponent.Add(
        Html.X().ComboBox()
        .TypeAhead(true)
        .QueryMode(DataLoadMode.Local)
        .ForceSelection(true)
        .TriggerAction(TriggerAction.All)
        .DisplayField("Name")
        .ValueField("Id")
        .AllowBlank(false)
        .Store(Html.X().Store().ID("turnAroundStoreelecdel")
        .AutoLoad(true)
        .Model(
        Html.X().Model()
        .IDProperty("Id")
        .Fields
        (
        new ModelField("Id", ModelFieldType.String) { Mapping = "Id" },
        new ModelField("Name", ModelFieldType.String) { Mapping = "Name" }
        )
        )
        .Proxy(Html.X().AjaxProxy()
        .Url(Url.Content("~/AjaxDataHelper/GetAllTurnAroundTypes/"))
        .Reader(Html.X().JsonReader().Root("data"))
        )
        )
        );
    }),
    
    Html.X().ComponentColumn()
    .Width(25)
    .PinAllColumns(false)
    .AutoWidthComponent(false)
    .OverOnly(true)
    .Component(Html.X().Button()
    .ToolTip("Pin editors")
    .Icon(Icon.Pencil)
    .AllowDepress(true)
    .EnableToggle(true)
    .Listeners(ls => ls.Toggle.Fn = "pinEditors")
    )
    
    )
    
    )
    </body>
    </html>
    Last edited by Daniil; May 30, 2013 at 4:13 AM. Reason: [CLOSED]

Similar Threads

  1. [CLOSED] Grid Combo Editor - Make drop-down wider than column
    By rthiney in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Aug 02, 2011, 3:05 PM
  2. [CLOSED] Grid to Grid Drag and Drop Questions
    By dmoore in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: Feb 15, 2011, 10:43 AM
  3. [CLOSED] [1.0] Grid to Grid Drag Drop
    By MP in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Sep 22, 2010, 3:57 PM
  4. Replies: 2
    Last Post: Mar 11, 2009, 8:59 AM
  5. Grid to grid Drag and Drop grouping issue
    By bobs in forum 1.x Help
    Replies: 0
    Last Post: Feb 10, 2009, 7:13 AM

Posting Permissions