May 21, 2013, 9:13 AM
[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.
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]