Syncfusion MVC Grid仅从OData源读取数据

时间:2016-01-26 12:32:43

标签: c# asp.net-mvc datagrid syncfusion

在我的应用程序中,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;
    }
...
}

这是有效的,经过Postman测试。获取数据并在DB中进行修改。 但我的网格:

@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源来存储它。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

应该从

更改数据源
.Datasource("http://localhost:26168/odata/Drivers")

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

这很好用。