Syncfusion MVC Grid 仅从 OData 源读取数据

本文关键字:读取 数据 OData 仅从 MVC Grid Syncfusion | 更新日期: 2023-09-27 18:32:00

在我的应用程序中,ASP.NET MVC 4,EntityFramework和Syncfusion MVC控件中,我对MVC Grid有问题。我用 Web API 创建了 OData 源代码:

public class DriversController : ODataController
{
    private ApplicationDbContext db = new ApplicationDbContext();
    // GET: odata/Drivers
    [EnableQuery]
    public IQueryable<Driver> GetDrivers()
    {
        return db.Drivers;
    }
...
}

这行得通,用邮递员测试过。获取数据并在数据库中对其进行修改。但是我的网格:

@model dynamic
@(Html.EJ().Grid<object>("DriversGrid")
    .Datasource("http://localhost:26168/odata/Drivers")
    .Columns(col =>
    {
        col.Field("Id").HeaderText("ID").IsIdentity(true).IsPrimaryKey(true).AllowFiltering(false).Add();
        col.Field("Name").HeaderText("Nazwa").Add();
        col.Field("DriverId").HeaderText("ID pastylki").Add();
    })
    .AllowFiltering()
    .FilterSettings(d => d.FilterType(FilterType.Menu))
    .AllowSorting()
    .ClientSideEvents(events =>
    {
        events.EndAdd("onEndAdd");
       // events.Load("onLoad");
    })
    .EditSettings(edit => { edit.AllowAdding().AllowDeleting().AllowEditing(); })
            .ToolbarSettings(toolbar =>
            {
                toolbar.ShowToolbar().ToolbarItems(items =>
                {
                    items.AddTool(ToolBarItems.Add);
                    items.AddTool(ToolBarItems.Edit);
                    items.AddTool(ToolBarItems.Delete);
                    items.AddTool(ToolBarItems.Update);
                    items.AddTool(ToolBarItems.Cancel);
                });
            })
)
<script>
    function onEndAdd(sender, args) {
        var gridObj = $("#DriversGrid").ejGrid("instance");
        gridObj.refreshContent();
    };
</script>

从控制器读取数据,网格上的操作仅调用public IQueryable<Driver> GetDrivers()。不会调用控制器上的其他操作。网格经常编辑、删除和插入数据,但不调用 odata 源来存储这些数据。我做错了什么?

Syncfusion MVC Grid 仅从 OData 源读取数据

应将数据源从

.Datasource("http://localhost:26168/odata/Drivers")

.Datasource(d => d.URL("http://localhost:26168/odata/Drivers"))

这工作正常。