这是后台的数据 public ActionResult ResidentInfo() 
        {
            StringBuilder JsonString = new StringBuilder();
            JsonString.Append("{\"total\":10,\"rows\":");
            JsonString.Append("[");
            //for (int i = 0; i < rTB.Rows.Count; i++)
            for (int i = 0; i < 10;i++ )
            {
                JsonString.Append("{");
                JsonString.Append("\"residentID\":\"这是用
户ID\",\"ResidnetName\":\"这是名字\"");                JsonString.Append("}");
                if(i<9)
                JsonString.Append(",");
            }
            JsonString.Append("]}");
                return Content(JsonString.ToString(),"Application/json");
        }这是前台代码:
    $('#MeteringTable').datagrid({
        url: '/Query/ResidentInfo',
        columns: [[
                    { field: 'productid', title: '用户ID', width: 200 },
                    { field: 'productname', title: '用户名', width: 200 }
                    ]]
    });怎么都获取不到数据,请教该如何从后台控制中获取数据MVCeasyuiASP.NETDataGrid

解决方案 »

  1.   

    后台 control 这样写  
    public string ResidentInfo()
            {
                返回json串 注意这里拼接的格式,去easyui 官网上面看他json串的格式进行拼装,这里很容易拼错的。
            }
    不要写在你的默认的 action 里面 单独页面用ajax来请求一次, 因为默认的action 返回的是actionResult 是一个view 
      
      

  2.   


    之前我一直是用public stringBuilder ResidentInfo(){}这样写的,调试后比较发现json也没拼错,但是前台就是没有变化啊
      

  3.   

    给你贴个例子 control 方法
     
     public string GetDictionaryList(FormCollection form)
            {            DictionaryParam pam = JsonHelper.JsonToEntity(form["params"], new DictionaryParam()) as DictionaryParam;            var list = _attributeService.GetDictionaryPagedList(pam).ToModelAsPageCollection<DictionaryExt, DictionaryModel>();
                if (list.InnerList.Count() == 0)
                    return "[]";
                return JsonHelper.CreateJsonParameters(list.InnerList, true, list.TotalCount);
            }  //  调用方式 一样,这里我只是把相关的基本参数全部封装在 initComplexDatagrid方法里面了, 方法里面只是根据传入的参数进行拼装datagrid的参数,
       
         var $dg = $("#dgMain");
            var columns = [{ field: 'ck', checkbox: true },
                { title: '属性名称', field: 'DictionaryKey', width: '140' },
                { title: '属性翻译内容', field: 'DictionaryValue', width: '200' },
                { title: '翻译语言', field: 'LanguageCode', width: '70' },
                { title: '创建时间', field: 'CreatedOn', width: '150' },
                { title: '创建人', field: 'CreatedBy', width: '150' },
                {
                    title: '操作',
                    field: 'DictionaryID',
                    width: 150,
                    formatter: function (value, rows) {                    //var key = eval('(' + rows.DictionaryKey + ')');
                        return "<a href='#' class=\"l-btn l-btn-plain\" onclick=EditData(&quot;" + decodeURIComponent(rows.DictionaryID) + "&quot;,&quot;" + rows.LanguageCode + "&quot;) ><span class=\"l-btn-left\"><span class=\"l-btn-text icon-edit\" style=\"padding-left: 20px;\">属性翻译</span></span></a>";
                       // return newOperationButton(rows.DictionaryKey, "属性翻译", "edit", "EditData");
                    }
                }];
      initComplexDatagrid($dg, new dgParam({
                columns: columns,
                url: '../Dictionary/GetDictionaryList'
            }));  <table id="dgMain">
            </table>  
      

  4.   

    JsonHelper.CreateJsonParameters 的方法体内容如下
      /// <summary>
            /// 将List中的数据转换成JSON格式
            /// </summary>
            /// <param name="dt">数据源list</param>
            /// <param name="displayCount">是否输出数据总条数</param>
            /// <param name="totalcount">JSON中显示的数据总条数</param>
            /// <returns></returns>
            public static string CreateJsonParameters<T>(List<T> list, bool displayCount, int totalcount)
            {
                if (list.Count == 0)
                    return "{\"rows\": 0,\"total\":0}";
                StringBuilder JsonString = new StringBuilder();
                if (list != null)
                {
                    JsonString.Append("{ ");
                    JsonString.Append("\"rows\":[ ");
                    T _t = (T)Activator.CreateInstance(typeof(T));
                    PropertyInfo[] propertys = _t.GetType().GetProperties();
                    List<string> titleList = new List<string>();
                    titleList = propertys.Select(t => t.Name).ToList();
                    foreach (var item in list)
                    {
                        JsonString.Append("{ ");
                        int titleLength = 1;
                        foreach (var titleItem in titleList)
                        {
                            PropertyInfo pi = propertys.First(p => p.Name == titleItem);
                            var value = pi.GetValue(item, null);
                            JsonString.Append(CheckPropertyDataType(pi.PropertyType, titleItem, value));
                            if (titleLength == titleList.Count)
                                JsonString.Remove((JsonString.Length - 1), 1);
                            titleLength++;
                        }
                        JsonString.Append("}, ");
                    }
                    JsonString.Remove((JsonString.Length - 2), 1);
                    JsonString.Append("]");
                    if (displayCount)
                        JsonString.Append(",\"total\":" + totalcount);
                }
                JsonString.Append("}");
                return JsonString.ToString().Replace("\n", "");
            }