剑道用户界面网格为空

时间:2020-05-22 22:09:34

标签: asp.net-mvc kendo-ui kendo-grid

我的kendo网格为空,但是在调试时我看到控制器正在发送正确的数据,但是网格仍然是空的。

这是我的观点

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewData["Title"] = "LoadSignatory";
}

<h1>Signatory</h1>

<p>
    <a asp-action="SaveSignatory">Create New</a>
</p>
@(Html.Kendo().Grid<M19_GradSkopje_GIS.Models.Responses.Signatory>()
    .Name("SignatoryGrid")
    .Scrollable(scrollable => scrollable.Height(540))
    .Reorderable(reorderable => reorderable.Columns(true))
    .Resizable(resizable => resizable.Columns(true))
    .Pageable()
    .Filterable()
    .Sortable()
    .Groupable()
    .ColumnMenu()
    .Columns(columns =>
    {
        columns.Bound(o => o.SignatoryID).Width(150).Locked(true).Lockable(false);
        columns.Bound(o => o.Name).Width(300);
        columns.Bound(o => o.IsActive).Width(300);
        columns.Bound(o => o.Id).Width(300).Locked(true);

    })
    .DataSource(dataSource => dataSource.Ajax().Read(read => read.Action("LoadSigs", "Signatory")))
)

<script>
    $(document).ready(function () {

        var roleGrid = $("#SignatoryGrid").data("kendoGrid");
        roleGrid.dataSource.read();
    });
</script>

这是我的控制器

public IActionResult LoadSignatory()
        {
            string conString = _configuration.GetConnectionString("strConnectionString");
            var con = new SqlConnection(conString);
            con.Open();

            SqlCommand cmd = new SqlCommand("gdi_LoadAllSignatory", con);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            List<Signatory> results = new List<Signatory>();
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                while (dr.Read())
                {
                    Signatory newItem = new Signatory();
                    newItem.SignatoryID = dr.GetInt16(0);
                    newItem.Name = dr.GetString(1);
                    newItem.IsActive = dr.GetBoolean(2);
                    results.Add(newItem);
                }
            }
            return View(results);
        }

        public ActionResult LoadSigs([DataSourceRequest] DataSourceRequest request)
        {
            string conString = _configuration.GetConnectionString("strConnectionString");
            var con = new SqlConnection(conString);
            con.Open();

            SqlCommand cmd = new SqlCommand("gdi_LoadAllSignatory", con);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            List<Signatory> results = new List<Signatory>();
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                while (dr.Read())
                {
                    Signatory newItem = new Signatory();
                    newItem.SignatoryID = dr.GetInt16(0);
                    newItem.Name = dr.GetString(1);
                    newItem.IsActive = dr.GetBoolean(2);
                    results.Add(newItem);
                }
            }
            return Json(results.ToDataSourceResult(request));
        }

第一个方法返回一个视图,因为当我尝试仅返回JSON时,它仅显示json。我在做什么错了?

0 个答案:

没有答案