当前位置: 首页 > 知识库问答 >
问题:

剑道用户界面MVC。如何更新网格并在$(“#网格”)中添加新值。数据('kendoGrid')。数据源。读()

朱明知
2023-03-14

我需要在通过调用更新数据库中的数据之后更新网格

$('#ExChangeGrid'). data('kendGrid'). dataSource.read();

我需要用当前日期时间更新网格,但网格正在用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")) 
    ) 
)                    

当我更新网格函数时,会调用“ReadRequestData”

.Read(read => read.Action("ExchangeRate_Read", "MyController").Data("ReadRequestData"))

在此函数中,“日期”的值由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编辑,但自动只有已更改的列更新。我还需要更新从更改的列计算的列。

共有1个答案

邓鸿雪
2023-03-14

首先,请使用Sync事件,而不是定档事件。此外,当您调用DataSource的read()方法时,将调用Read刚需数据函数来获取日期并将其传递给您的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\u Read操作中,如果从视图传递的日期为空,您可以使用当前日期。

 类似资料:
  • 如何加密列产品ID在Kendo ui网格用户看不到我的真实ID?我使用ASP. NET MVC 5。 谢谢你!

  • 我使用Telerik的演示页面上显示的编辑网格。编辑网格后,我希望网格刷新。编辑网格后,网格是否有调用的任何事件? 我试图使用数据绑定事件。在本例中,我读取数据源,但它告诉我刷新网格是一个无限循环。我试图使用saveChanges事件,但它不起作用。

  • 我的项目中有剑道网格 其中一个圆柱,例如Naam圆柱,看起来像这样 它所做的是在弹出窗口中打开一个剑道编辑器,其中包含产品的价值。纳姆 弹出窗口有剑道编辑器、OK和Cancel按钮 这是我的网格图像。带3个点的圆圈是打开剑道编辑器的按钮 这是我的剑道编辑器弹出窗口的图片,文本已经编辑过了 到现在为止,一直都还不错。我在编辑器中获得Naam值。 当我点击OK时,我会打电话给你 它还没有完成; 这就是

  • 如何使用Javascript重新加载或刷新剑道网格? 通常需要在某个时间或用户操作之后重新加载或刷新网格。

  • 有没有一种方法可以在不刷新整个数据源或使用jQuery为每个单元格设置值的情况下刷新单个剑道网格行?

  • 在我的剑道网格中,我为每一列都有kenddropDownlist。选定的项目应解析并显示模板文本 我一直在遵循这个例子http://jsfiddle.net/jddevight/Ms3nn/ 使现代化 我在这里简化了我的问题http://jsfiddle.net/BlowMan/mf434/ 问题 当我在下拉列表中选择一个项目时,它不会返回所选项目的值。它返回null。 }); 下面的视图部分 任