如何使用entityframwork和sql数据动态显示jqgrid数据

How to show jqgrid data dynamically using entityframwork with sql data?

本文关键字:数据 动态显示 jqgrid sql 何使用 entityframwork      更新时间:2023-09-26

嗨,老板们,我用sql pivot在网格中展示了employeewise产品。当我在managementstudio中执行查询时,它可以正常工作,但问题是当我想在jqgrid中显示具有动态行和列的数据时,它不起作用。我是jqgrid的新手。

这是我的控制器动作方法

public ActionResult FindOrderByEmployeeCall() 
        {
            var query = (from fo in db1.FindOrderByEmp1()
                         select fo).ToList();
            return Json(query, JsonRequestBehavior.AllowGet);
        }

我在jqgrid视图页面中显示数据的ajax方法是

<script type="text/javascript">
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: "/Invoice/FindOrderByEmployeeCall/",
            dataType: "json",
            success: function(result){
                var colD = result.couponStripList,
                    colM = result.colModelList;
                $("#list").jqGrid({
                    //datatype: 'local',
                    data: "",
                    gridview: true,
                    colModel :colM,
                    height: "auto",
                    loadComplete: function(data){
                        alert('loaded');
                    },
                    loadError: function(xhr,status,error){
                        alert('error');
                    }
                });
            },
            error: function(x, e){
                alert(x.readyState + " "+ x.status +" "+ e.msg);
            }
        });
    });
</script>

我的sql透视查询是

ALTER proc [dbo].[FindOrderByEmp1]
as
BEGIN
SET FMTONLY OFF;
DECLARE @query nvarchar(max)
DECLARE @Product NVARCHAR(max),@Product1 NVARCHAR(max)
SELECT  @Product = STUFF(( SELECT distinct'],['+  rtrim(ProdId) FROM OrderDetails ORDER BY '],['+ rtrim(ProdId) FOR XML PATH('')), 1, 2, '')+']'
set @Product1 =SUBSTRING(( select distinct ',IsNull(['+rtrim(ProdId)+'],0) as ['+rtrim(ProdId)+']' from OrderDetails for xml path('')),2,8000)
SET @query =
'SELECT EmpId,'+@Product1+'  FROM
(
    SELECT d.ProdId,m.EmpId,isnull(convert(int,d.Qty),0.0) as oqty
    FROM OrderMaster m inner join OrderDetails d on m.OrdId=d.OrdId
)t
PIVOT (SUM(oqty)
 FOR ProdId
IN ('+@Product+')) AS pvt' 
EXECUTE (@query)
end

请帮帮我。

JqGrid支持枢轴网格,请参阅下面的链接

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:pivotsettings

如果您想在运行时更改行和列,则只加载一次。请在创建和加载网格之前使用GridUnload。

jqGrid GridUnload/GridDestroy