Insert not working, on controller parameter value is null.
public async Task<IActionResult>Add([FromBody] ICRUDModel<Accountants> value)
{
....
}
@{
List<object> toolbarItems = new List<object>();
toolbarItems.Add("Add");
toolbarItems.Add("Edit");
toolbarItems.Add("Delete");
toolbarItems.Add("Cancel");
toolbarItems.Add("Update");
//toolbarItems.Add(new { text = "Clear Filter", tooltipText = "Clear Filter", id = "Click", align = "Right" });
}
<div class="col-sm-12">
<ejs-grid id="Grid" dataBound="dataBound" allowPaging="true" allowFiltering="true" toolbar=toolbarItems>
<e-grid-aggregates>
<e-grid-aggregate>
<e-aggregate-columns>
<e-aggregate-column field="Debit" type="Sum" format="C2" footerTemplate="${Sum}">
</e-aggregate-column>
<e-aggregate-column field="Credit" type="Sum" format="C2" footerTemplate="${Sum}">
</e-aggregate-column>
</e-aggregate-columns>
</e-grid-aggregate>
</e-grid-aggregates>
<e-grid-filtersettings type="Menu"></e-grid-filtersettings>
<e-data-manager json="@Model.ToArray()" insertUrl="/Accountant/Add" updateUrl="/Accountant/Update"
removeUrl="/Accountant/Delete" adaptor="RemoteSaveAdaptor"></e-data-manager>
<e-grid-editsettings showDeleteConfirmDialog="true" allowAdding="true" allowDeleting="true" allowEditing="true"></e-grid-editsettings>
<e-grid-pagesettings pageSizes="true" pageSize="100"></e-grid-pagesettings>
<e-grid-columns>
<e-grid-column field="Id" headerText="Id" isPrimaryKey="true" width="0"></e-grid-column>
<e-grid-column field="Date" headerText="Date" editType="datepickeredit" format="yMd"></e-grid-column>
<e-grid-column field="Transaction" headerText="Transaction" width="240"></e-grid-column>
<e-grid-column field="Description" headerText="Description" width="320"></e-grid-column>
<e-grid-column field="Category" headerText="Category"></e-grid-column>
<e-grid-column field="Debit" headerText="Debit" editType="numericedit"></e-grid-column>
<e-grid-column field="Credit" headerText="Credit" editType="numericedit"></e-grid-column>
</e-grid-columns>
</ejs-grid>
i guess no need for this databound event script but anyway i am pasting it.
function dataBound(e) {
var grid = document.getElementById('Grid').ej2_instances[0];
var field = 'Debit';
var field2 = 'Credit';
document.getElementById('debitSum').innerText = 'Total Debit: ' + grid.aggregateModule.footerRenderer.aggregates.aggregates[field + ' - sum'].toFixed(2);
document.getElementById('creditSum').innerText = 'Total Credit: ' + grid.aggregateModule.footerRenderer.aggregates.aggregates[field2 + ' - sum'].toFixed(2);
I checked your forums specially this link but no help
https://www.syncfusion.com/forums/168674/new-row-displays-empty-at-datagrid-using-remotesaveadaptor
i have this as well in my startup class
services.AddMvc().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
dot net core framework is 3.1
Package : Syncfusion.EJ2.AspNet.Core
Vesrion : 19.4.0.53
Hi Pavithra , I also want a date range picker on the date column while filtering.
I am checking these links but no help.
Please help on this as well
|
<ejs-grid id="Grid" dataBound="dataBound" allowPaging="true" allowFiltering="true" toolbar=toolbarItems>
. . .
<e-grid-columns>
<e-grid-column field="OrderID" headerText="Order ID" defaultValue="1" isPrimaryKey="true" width="0"></e-grid-column>
. . .
</e-grid-columns>
</ejs-grid>
|
|
<ejs-grid id="Grid" dataSource="@ViewBag.DataSource" allowFiltering="true">
<e-grid-filterSettings type="Menu"></e-grid-filterSettings>
<e-grid-columns>
<e-grid-column field="OrderDate" headerText="Order Date" filter="@(new { ui= new { create = "onFilterCreate", write = "onFilterWrite" } })" type="date" format="yMd" width="120"></e-grid-column>
</e-grid-columns>
</ejs-grid>
<script>
function onFilterCreate(args) {
// Input element is created and appended to the target element
var flValInput = new ej.base.createElement('input', { className: 'flm-input' });
args.target.appendChild(flValInput);
// Date range picker is rendered and appended to the input element
var dateRangeInst = new ej.calendars.DateRangePicker({
});
dateRangeInst.appendTo(flValInput);
}
function onFilterWrite(args) {
}
</script> |
|
var dateRangeInst = new ej.calendars.DateRangePicker({
change: function (e) {
if (e != undefined && e.value) {
var grid = document.getElementById("Grid").ej2_instances[0];
// Get date values from date range picker
startDate = e.value[0];
endDate = e.value[1];
// Flag variable is used to identify this case in the Grid’s action begin event
customFilter = true;
// Filter the required column with start date of the date range picker
// GridInstance.filterByColumn(Column field name, filter operator, filter value)
grid.filterByColumn('OrderDate', 'greaterthan', startDate);
}
}
});
dateRangeInst.appendTo(flValInput); |
|
// Grid’s actionBegin event handler
function onActionBegin(args) {
// Check for filter column and flag enabled in date range picker’s change event
if (args.requestType === "filtering" && args.currentFilteringColumn === "OrderDate" && customFilter) {
customFilter = false;
// End date value is added as additional filter value with ‘lessthan’ filter operator
args.columns.push({ actualFilterValue: {}, actualOperator: {}, field: "OrderDate", ignoreAccent: false, isForeignKey: false, matchCase: false, operator: "lessthan", predicate: "and", uid: this.getColumnByField(args.currentFilteringColumn).uid, value: endDate });
}
} |
|
function onFilterCreate(args) {
.
.
var grid = document.getElementById("Grid").ej2_instances[0];
var date = [];
grid.filterSettings.columns.forEach(col => {
// Filter values for the date column are pushed into an array
if (col.field === "OrderDate")
date.push(col.value);
});
var dateRangeInst = new ej.calendars.DateRangePicker({
startDate: date[0],
endDate: date[1],
.
.
});
dateRangeInst.appendTo(flValInput);
} |
Thank you Pavithra
I now have a date range picker in the date filter and I can select start and end dates.
But filtering is not working correct. It is bringing dates which are greater than end date.
Hi Pavithra
thank you for your reply, please check attachment.
Also I am not able to download your sample attachments. Its saying access denied even though I am logged in to syncfusion portal. It is saying.
Attachment: ScreenShots_2efef71e.zip
Hi Pavithra,
Sorry for late response.
Its working! Thank you! for you help
Regards