@{
var valueAccessor = "valueAccessorFn";
}
<div>
@Html.EJS().Grid("Grid").DataSource(dataManager =>
{
dataManager.Json(ViewBag.dataSource).InsertUrl("/Home/Insert").RemoveUrl("/Home/Delete").UpdateUrl("/Home/Update").Adaptor("RemoteSaveAdaptor");
}).EditSettings(e => { e.AllowAdding(true).AllowEditing(true).AllowDeleting(true); }).Columns(col =>
{
. . . . . .
col.Field("UserState").HeaderText("UserState").AllowFiltering(true).Width("150").ValueAccessor(valueAccessor).Edit(new { create = "create", read = "read", destroy = "destroy", write = "write" }).Add();
}).AllowPaging().AllowSorting(true).ActionBegin("Begin").Toolbar(new List<string>() { "Add", "Edit", "Delete", "Update", "Cancel" }).Render()
</div>
<script>
var elem;
var dObj;
var instance;
var flag = false;
var dropData = @Html.Raw(Json.Encode(ViewBag.UserStates));
function Begin(args) {
if (args.requestType === 'save') {
flag = true;
var userState = dropData.filter(or => or.text == args.data.UserState)
args.data.UserState = userState[0].value; // Send required UserState value to server side
}
}
function valueAccessorFn(field, data, column) {
if (flag) {
var userState = dropData.filter(or => or.value == data.UserState)
var value = userState[0].text;
flag = false;
return value; // Returned required enumMember value
}
else {
return data.UserState;
}
}
function create(args) {
elem = document.createElement('input');
return elem;
}
function write(args) {
dObj = new ej.dropdowns.DropDownList({
dataSource: dropData,
query: new ej.data.Query(),
allowFiltering: true,
ignoreAccent: true,
fields: { Value: "value", Text: "text" }
});
dObj.appendTo(elem);
}
function destroy() {
dObj.destroy();
}
function read(args) {
return dObj.value;
}
</script>
public static List<OrdersDetails> GetAllRecords()
{
List<OrdersDetails> order = new List<OrdersDetails>();
int code = 10000;
for (int i = 1; i < 10; i++)
{
order.Add(new OrdersDetails(code + 1, "ALFKI", i + 0, 2.3 * i, false, new DateTime(1991, 05, 15), "Berlin", "Simons bistro", "Denmark", new DateTime(1996, 7, 16), "Kirchgasse 6", UserState.BLOCKED));
. . . . . . . . .
code += 5;
}
return order;
}
. . . . . . . . .
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public UserState UserState { get; set; }
}
public enum UserState
{
[EnumMember(Value = "Nový")]
[Description("Nový")]
NEW = 0,
[EnumMember(Value = "Ověřený")]
[Description("Ověřený")]
VARIFIED = 1,
[EnumMember(Value = "Skrytý")]
[Description("Skrytý")]
BLOCKED = 2,
} |