我的問題是,在試圖實現自動載入功能的使用時,我無法讓GET請求對我的操作嘗試加載下一組數據。滾動在MVC中使用jqGrid滾動時自動載入數據
是什麼時候自動加載 - 第一個初始負載正常工作
我嘗試以下這裏http://trirand.com/blog/jqgrid/jqgrid.html
該功能在3.4版本製作新的左手側的條目中列出的例子這裏的錯誤?
這裏是我的js代碼電網
<script type='text/javascript'>
$(document).ready(function()
{
$('#gvEmps').jqGrid(
{
url:'RecordEmpGrid',
datatype: 'json',
colNames:['Select Training(s)'],
colModel :
[
{name: 'Select Training(s)', index: 'TrainingName', width: '300', align: 'Left'}
],
rowNum: 15,
scroll: true,
rowList:[10,20,30],
pager: '#gvEmpsPager',
sortname: 'TrainingName',
viewrecords: true,
sortorder: 'desc',
jsonReader:
{
repeatitems : true,
},
caption: ''
});
});
</script>
的Html
<table id="gvEmps" class="SGrid scroll"></table>
<div id="gvEmpsPager" class="scroll"></div>
控制器
//will never hit this action when scrolling, only first time on page load
[HttpGet]
public ActionResult RecordEmpGrid(string sidx, string sord, int page, int rows)
{
var gr = new GridResult(sidx, sord, page, rows);
var skip = rows * page - rows;
DataTable dt = null;
using (var mr = new MultipleRecords(Product.Utility, "evaluateSql"))
{
mr["sql"] = "SELECT * FROM TT.Training WHERE CompanyId = 190 ORDER BY TrainingName ASC";
dt = mr.GetDataTable();
}
gr.Total = dt.Rows.Count;
var records = new MultipleRecords(dt);
foreach (var row in records.Skip(skip).Take(rows))
{
gr.AddDataRow(new []{row["TrainingTypeID"].String, row["TrainingName"].String });
}
return Json(gr.Data, JsonRequestBehavior.AllowGet);
}
我的JSON包裝對象
public class GridResult
{
private List<object> m_rowData = new List<object>();
private string m_order;
private string m_idx;
private int m_rows;
private int m_page;
public int Total { get; set; }
public GridResult()
{
}
public GridResult(string sidx, string sord, int page, int rows)
{
m_idx = sidx;
m_order = sord;
m_page = page;
m_rows = rows;
}
public void AddDataRow(object[] columnData)
{
m_rowData.Add(columnData);
}
private object m_data;
public object Data
{
get
{
return m_data ?? (m_data = BuildData());
}
}
protected object BuildData()
{
var id = 1;
return new
{
total = Total,
page = m_page++,
records = m_rows,
rows = (from row in m_rowData
select new
{
id = id++,
cell = row
}
).ToArray()
};
}
}
抱歉,我忘了提,但我只是用一些自定義的路由,讓我在這個特殊的情況下離開控制器的名字。請記住,它加載第一組記錄的罰款,它只是在滾動期間的自動加載完全失敗。 –
你有沒有視圖名稱作爲RecordEmpGrid? – solkim
不,視圖的名稱是Record.cshtml –