我需要在通过调用
更新数据库中的数据后更新Grid $('#ExchangeGrid').data('kendoGrid').dataSource.read();
我需要使用当前DateTime更新网格,但网格正在更新DateTimePicker()中存在的时间
如何更改当前时间?
我的网格
@(Html.Kendo().Grid<Internal.Models.ExchangeRateData>()
.Name("ExchangeGrid")
.Columns(columns =>
{
columns.Bound(p => p.originCurrencyFormated);
columns.Bound(p => p.targetCurrencyFormated);
columns.Bound(p => p.rate);
columns.Bound(p => p.percentage) ;
columns.Command(commands => { commands.Edit(); });
columns.Bound(p => p.adjustedRate) ;
})
.Editable(edit =>
{
edit.Mode(GridEditMode.InLine);
})
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Model(model =>
{
model.Id(item => item.targetCurrency);
})
.Events(events =>
{
events.RequestEnd("onRequestEnd");
})
.Read(read => read.Action("ExchangeRate_Read", "MyController").Data("ReadRequestData"))
.Update(c => c.Action("Currencies_Update", "MyControllor"))
)
)
当我更新Grid函数时,调用“ReadRequestData”
.Read(read => read.Action("ExchangeRate_Read", "MyController").Data("ReadRequestData"))
在此函数中,“date”的值从DateTimePicker
填充function ReadRequestData() {
return {
"date": $('#dateList').val()
};
}
DateTimePicker的代码:
@(Html.Kendo().DateTimePicker()
.Name("dateList")
.Start(CalendarView.Month)
.Format("dddd MMMM dd, yyyy H:mm:ss")
.Value(DateTime.Now)
.Events(e => e.Change("changeDate"))
)
onRequestEnd(e)函数代码
function onRequestEnd(e) {
if (e.type == "update") {
$('#ExchangeGrid').data('kendoGrid').dataSource.read();
}
}
我需要在InLine Edit之后更新多个列,但只会自动更新已更改的列。我还需要更新从更改的列计算的列。
答案 0 :(得分:1)
首先,使用Sync事件,而不是RequestEnd事件。此外,当您调用DataSource的read()
方法时,会调用ReadRequestData
函数来获取日期并将其传递给您的ExchangeRate_Read
操作。但是,在更新数据后,您不需要该日期。所以,你可以清除DateTimePicker。
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Model(model =>
{
model.Id(item => item.targetCurrency);
})
.Events(events =>
{
events.Sync("onSync");
})
.Read(read => read.Action("ExchangeRate_Read", "MyController").Data("ReadRequestData"))
.Update(c => c.Action("Currencies_Update", "MyControllor"))
)
)
function onSync(e) {
$("#dateList").data("kendoDateTimePicker").value('');
$('#ExchangeGrid').data('kendoGrid').dataSource.read();
}
现在,在您的ExchangeRate_Read
操作中,您可以使用当前日期,以防从视图传递的日期为空。