2012-09-30 75 views
0

我正在使用jsonData绑定到jqgrid,但我也希望在字段中使用model.total amount使用json数据传递对象

那么如何在内使用jsonData呢?

查看

<table> 
<tr> 

<td>@Model.TotalAmount</td> 

</tr> 
</table> 

控制器

public ActionResult GetDocPendingDetails(string strPA, string strEmpCode, string StrModeOfPayment) // Sends PA to bind the gridview 
     { 
      string StrEmpcode = ""; // to be changed 
      cmn_top objCmn_top = new cmn_top(); 
      DataTable dtData = new DataTable(); 
      Items objitem = new Items(); 
      if (StrModeOfPayment == "All") 
      { 
       StrModeOfPayment = ""; 
      } 
      dtData = objCmn_top.Reports_GetData__DocPendingPayment(strPA, StrEmpcode, StrModeOfPayment); 
      ViewBag.TotalAmount = dtData.AsEnumerable().Sum(x => x.Field<double>("fl_approvedamt")).ToString();   // to be changed later 
      int totalRecords = dtData.Rows.Count; 
      var jsonData = new 
      { 
       totalamount = ViewBag.TotalAmount, 
       total = totalRecords, 
       rows = 
       (
       from dtRow in dtData.AsEnumerable() 
       select new 
       { 
        cell = new string[] 
        {      
         dtRow.Field<string>("ch_docno"),dtRow.Field<string>("ch_empcode"),dtRow.Field<string>("ch_sapvoucherno"), dtRow.Field<string>("CH_PSA_CODE"),dtRow.Field<double>("fl_approvedamt").ToString() 
        } 
       } 
       ) 
      }; 
      return Json(jsonData, JsonRequestBehavior.AllowGet); 

     } 

这是我的jqGrid

$("#list").GridUnload(); 
    $("#list").jqGrid({ 
     url: '/Reports/GetDocPendingDetails', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['Document No.', 'Document Owner', 'SAP Document No', 'PSA', 'Approved Amount'], 
     colModel: [ 
       { name: 'ch_docno', index: 'ch_docno', width: 100, align: 'center' }, 
       { name: 'ch_empcode', index: 'ch_empcode', width: 250, align: 'left' }, 
       { name: 'ch_sapvoucherno', index: 'ch_sapvoucherno', width: 100, align: 'center' }, 
       { name: 'CH_PSA_CODE', index: 'CH_PSA_CODE', width: 200, align: 'left' }, 
       { name: 'fl_approvedamt', index: 'fl_approvedamt', width: 100, align: 'center' } 

      ], 
     emptyrecords: "Empty records", 
     height: 'auto', 
     loadtext: 'Loading.....', 
     sortorder: 'asc', 
     caption: " Documents Pending For Payment ", 
     shrinkToFit: true, 
     rownumbers: true, 
     rowNum: -1, 
     postData: { strPA: selectedPA, StrModeOfPayment: modeOfPayment }, 
     viewrecords: true, 
     gridComplete: function() { 
      var recs = parseInt($("#list").getGridParam("records")); 
      if (isNaN(recs) || recs == 0) { 
       $("#gridWrapper").hide(); 
       $("#DivEmptyRecords").show(); 

      } 
      else { 
       $('#gridWrapper').show(); 
       $("#DivEmptyRecords").hide(); 

      } 
     } 
    }); 
//document.getElementById("tdTotalAmount").innerHTML = jsonData.TotalAmount; 

} 

回答

0

您正在返回的Json数据正确吗?在这种情况下,您不能使用@Model.TotalAmount

如果您想使用@Model.TotalAmount,您的操作将返回一个具有TotalAmount作为属性的模型。

但是,因为您需要使用Jqgrid,我建议您坚持返回Json数据。

另外我可以看到你通过totalamount作为Json结果的一部分。

使用firefox的萤火虫,并研究如何发布json数据,然后在jQuery和jqgrid中使用该值。

另外它会更好,如果你可以发布你的一些Jqgrid代码。

+0

嗨我发布了jqgrid代码,我想在@ model.totalamount处使用TotalAmount。我只是困惑如何访问该地点的JSON数据。 –