@(Html.EJ().GridPromozioneDettaglio>("GridDetailPromo") .Datasource(ds => ds.Json((IEnumerable<object>)ViewBag.dsDetail).CrudURL("DetailCrud").Adaptor(AdaptorType.RemoteSaveAdaptor)) .Query("new ej.Query().where('tipoArticolo', 'equal', 'TtipoServizio', false)") .SortSettings(sort => sort.SortedColumns(col => col.Field("descrizione").Direction(SortOrder.Ascending).Add())) .ToolbarSettings(tool => tool.ShowToolbar().ToolbarItems(tbItem => { if (!disableControls & (ruolo == "ADMIN" || ruolo == "SUPERUSER")) { tbItem.AddTool(ToolBarItems.Add); tbItem.AddTool(ToolBarItems.Edit); tbItem.AddTool(ToolBarItems.Delete); tbItem.AddTool(ToolBarItems.Update); tbItem.AddTool(ToolBarItems.Cancel); } })) .Locale("it-IT") .AllowSorting() .AllowPaging() .AllowSelection() .PageSettings(page => page.PageSize(10)) .IsResponsive(true) .EnableResponsiveRow(true) .MinWidth(400) .EditSettings(edit => { edit.AllowAdding();//enebled adding edit.AllowDeleting();//enabled deleting edit.AllowEditing();//enabled editing edit.AllowEditOnDblClick(!disableControls & (ruolo == "ADMIN" || ruolo == "SUPERUSER"));//disabled editing when record is double clicked edit.EditMode(EditMode.Normal);//setting edit mode edit.ShowDeleteConfirmDialog();//enabling api to show confirmation dialog upon deleting }) .Columns(col => { col.Field(c => c.tipoArticolo).HeaderText("Tipo articolo").Visible(false).Add(); col.Field(c => c.ID).HeaderText("ID").Visible(false).IsPrimaryKey(true).Add(); col.Field(c => c.IDarticolo).HeaderText("Articolo").ForeignKeyField("ID").ForeignKeyValue("descrizione").DataSource(ViewBag.dsServizi).Add(); col.Field(c => c.sconto).HeaderText("Sconto %").Width("15%").Format("{0:N} %").TextAlign(TextAlign.Right).ValidationRules(v => v.AddRule("required", true).AddRule("number", true).AddRule("range", "[0,100]")).Add(); }) .ClientSideEvents(eve => { eve.ActionBegin("GridActionBegin"); eve.Create("GridCreate");
<input type="button" value="Applica sconto" class="btn btn-default" onclick="applicaSconto()" /> @Html.EJ().PercentageTextbox("scontoGlobal").Value("10").MinValue(1).MaxValue(100).Width("100%")
this is my scripts
function GridCreate() { gridDetailObj=this; }
function applicaSconto() { $.map(gridDetailObj.model.dataSource.dataSource.json, function(elementOfArray, indexInArray) { gridDetailObj.updateRecord("ID", { ID: elementOfArray.ID, sconto: $('#scontoGlobal').val() }); }); }
@Html.EJ().PercentageTextbox("scontoGlobal").Value("10").IncrementStep(0.5).Locale("it-IT").MinValue(1).MaxValue(100).Width("100%")
|
public ActionResult data() {
List<Orders> dat = order.ToList();
return Json(new { result = dat });
}
<script type="text/javascript"> $.ajax({
url: "/Home/data",
type: "POST",
success: function (data) {
$("#GridDetailPromo").ejGrid("dataSource", ej.DataManager({
json: data.result,
adaptor: "remoteSaveAdaptor"
}));
}
});
}
</script> |
Thanks for reply
Q1
I don't update the local data, i read the local data just the first time. So this is my script and works
function applicaSconto() { var jsonDS=gridDetailObj.model.dataSource.dataSource.json; $.map(jsonDS, function(elementOfArray, indexInArray) { elementOfArray.sconto=$('#scontoGlobal').val(); }); gridDetailObj.model.dataSource.dataSource.json=jsonDS; refreshGrid(); }
Q2
Your sample works fine with UnobtrusiveJavaScriptEnabled=false, but i need UnobtrusiveJavaScriptEnabled=true and with this settings , your sample fails
with error:
"Uncaught setModel - Invalid input for property :incrementStep - Expected type - number"
I downloaded , compiling and execute your sample without changing anything, with chrome and with Edge, this is the result.
I use Visual Studio Comunity 2015