Я пытаюсь создать jqGrid с MVC4 WebApi. Я просмотрел различные примеры и, наконец, использовал этот link в качестве ссылки. Проблема заключается в том, что сетка не заполняется данными, но она удаляет GET-метод сервера (контрольная точка останова для тестирования). Я разместил приложение на локальном IIS. Ниже jqgrid страница (index.htm)JQGrid Не заселяющие данные. (Всегда пустая сетка)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>My First Grid</title>
<link href="../Content/jquery.jqGrid/ui.jqgrid.css" type="text/css" rel="stylesheet" />
<style>
html, body {
font-size: 75%;
}
</style>
<script src="../Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery-ui-1.10.4.js" type="text/javascript"></script>
<script src="../Scripts/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="../Scripts/jquery.jqGrid.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var API_URL = "/WebApiOne/api/task/";
jQuery("#gridMain").jqGrid({
url: API_URL,
data : API_URL,
datatype: 'json',
contentType: "application/json; charset=UTF-8",
mtype: 'GET',
pager: '#pagernav',
sortable: true,
height: 200,
viewrecords: true,
colNames: ['TaskID', 'ProjectID', 'ProjectName', 'TaskName', 'TaskStatus'],
colModel: [{ name: 'TaskID', index: 'TaskID', width: 40, sorttype: "int" },
{ name: 'ProjectID', index: 'ProjectID', editable: true, edittype: 'int', width: 70 },
{ name: 'ProjectName', index: 'ProjectName', editable: true, edittype: 'text', width: 70 },
{ name: 'TaskName', index: 'TaskName', editable: true, edittype: 'text', width: 50, align: "right" },
{ name: 'TaskStatus', index: 'TaskStatus', editable: true, edittype: 'text', width: 50, align: "right"}
],
caption: "CRUD With ASP.NET Web API",
autowidth: true
});
});
</script>
</head>
<body>
<table id="gridMain">
</table>
<div id="pagernav">
</div>
</body>
</html>
Вот мой Server Side Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace WebApiOne.Controllers
{
public class Task
{
public int TaskID { get; set; }
public int ProjectID { get; set; }
public string ProjectName { get; set; }
public string TaskName { get; set; }
public string TaskStatus { get; set; }
}
public class TaskController : ApiController
{
// GET api/task
public IEnumerable<Task> Get()
{
Task[] tasks = new Task[2];
tasks[0] = new Task()
{
TaskID = 1,
ProjectID = 1,
ProjectName = "ProjectOne",
TaskName = "FirstPage Development",
TaskStatus = "InProgress"
};
tasks[1] = new Task()
{
TaskID = 2,
ProjectID = 1,
ProjectName = "ProjectOne",
TaskName = "Second Page Development",
TaskStatus = "Yet To Start"
};
return tasks;
}
// GET api/task/5
public string Get(int id)
{
return "value";
}
// POST api/task
public void Post([FromBody]string value)
{
}
// PUT api/task/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/task/5
public void Delete(int id)
{
}
}
}
Но когда я просматриваю для локального хоста/WebApiOne/API/задач/Я получаю исходные данные в формате JSON as: [{"TaskID":1,"ProjectID":1,"ProjectName":"ProjectOne","TaskName":"FirstPage Development","TaskStatus":"InProgress"},{"TaskID":2,"ProjectID":1,"ProjectName":"ProjectOne","TaskName":"Second Page Development","TaskStatus":"Yet To Start"}]
Это доказывает, что Сервер функционирует, и я ничего не теряю на переднем конце.
Какую версию jqGrid вы используете? Значение 'TaskID' отличается во всех элементах, возвращаемых' WebApiOne/api/task/'(может ли' TaskID' использоваться как rowid)? – Oleg
версия - @license jqGrid 4.4.4 - jQuery Grid –
Да .. TaskID отличается во всех элементах, возвращаемых 'WebApiOne/api/task /' –