无法将数据填充到jqGrid控件中,但没有错误

时间:2018-10-04 13:26:16

标签: asp.net-mvc jqgrid mvcjqgrid

我不确定我在哪里做错了,我无法将数据填充到jqGrid控件中。

尝试了不同的文章,并验证了一些视频教程,但是没有运气。

任何人都可以帮我解决问题!

下面是$data = array(); foreach ($this->input->post() as $value) { if(is_array($value)) $rowids[] = $value['rowid']; //$qty = $qty; } foreach ($this->input->post() as $value) { if(!is_array($value)) $qtys[] = $value; } $i=-1; for($i=0;$i<count($rowids); $i++) { $data[] = array( 'rowid' => $rowids[$i], 'qty' => $qtys[$i] ); } //var_dump($data); 中的代码。

HomeController

我的 [HttpGet] public ActionResult JQGridOrders() { return View(); } [HttpGet] public ActionResult GetOrders() { using (NorthwindEntities db = new NorthwindEntities()) { var ordersList = db.Orders.Select(x => new OrderInfo { OderID = x.OrderID, CustomerID = x.CustomerID, OrderDate = x.OrderDate, Freight = x.Freight, ShipName = x.ShipName, ShipAddress = x.ShipAddress }).ToList(); return Json(new { rows = ordersList }, JsonRequestBehavior.AllowGet); } } 课在下​​面

OrderInfo

下面是视图

public class OrderInfo
{
    public int OderID { get; set; }
    public string CustomerID { get; set; }
    public DateTime? OrderDate { get; set; }
    public decimal? Freight { get; set; }
    public string ShipName { get; set; }
    public string ShipAddress { get; set; }
}

2 个答案:

答案 0 :(得分:0)

尝试将操作的返回类型从ActionResult更改为JsonResult

       [HttpGet]
        public JsonResult GetOrders()
        {
            using (NorthwindEntities db = new NorthwindEntities())
            {
                var ordersList = db.Orders.Select(x => new OrderInfo {
                    OderID = x.OrderID,
                    CustomerID = x.CustomerID,
                    OrderDate = x.OrderDate,
                    Freight = x.Freight,
                    ShipName = x.ShipName,
                    ShipAddress = x.ShipAddress
                }).ToList();
                return Json(new { rows = ordersList }, JsonRequestBehavior.AllowGet);
            }
        }

答案 1 :(得分:0)

您应使用json responsecolModeljsonmapjsonReader之间映射元素

  • jsonReader来定义元素
  • jsonmap为传入的json字符串中的列定义json映射。

这里是演示,并使用了一些虚假数据来显示映射。

$(function () {

 $("#jqGrid").jqGrid({
                loadError: function (xhr, status, error) {
                    alert('load error: ' + error);
                },
                mtype: 'GET',
                ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
                url: 'https://reqres.in/api/users?page=2',
                datatype: "json",
                colNames: ["Id", "First Name"],
                colModel: [
                         { name: "Id", index: "id",key:true, width: 50, jsonmap: "id" },
                         { name: "First Name", index: "first_name", width: 200, jsonmap: "first_name"}
                ],

                gridview: true,
                jsonReader: { repeatitems:true, root:"data" },
                rowNum: 10,
                rowList: [10, 20, 30],
                viewrecords: true,
                width:500,
                height: 200,
                caption: "JSON Example",
            });
            
            
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/jquery.jqGrid.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/4.6.0/js/i18n/grid.locale-en.js"></script>

<table id="jqGrid"></table>