需求:一個頁面有很多個按鈕,每個按鈕是一個數據源,我的數據源詩寫在SP裏面的,有封裝好的代碼,只需傳入對應的參數,即可獲取不同的SQL
JS代碼
var queryList = {};
//初始化容器div tabtrsnlist
$(function () {
queryList.Paramms11 = "TOTAL";
queryList.Paramms1 = 1;//当前页数
queryList.Paramms2 = 1; //每页的记录数(行数)其實我只是需要欄位而已
$.ajax({
url: '/LINE/GetPAFOrderInfo',
type: 'POST',
data: queryList,
success: function (msg) {//data后台的传过来的表字段数组
var ColumnsList = msg.lColumns;
var columnsAll = [];
for (var i = 0; i < ColumnsList.length; i++) {
var col = {};
col['title'] = ColumnsList[i].COLUMN;
col['field'] = ColumnsList[i].COLUMN;
col['width'] = ColumnsList[i].Width;
col['editor'] = 'text';
col['align'] = 'center';
columnsAll.push(col);
}
//因為我需要動態生成Columns,所以我需要外層的方法,不然直接下面這段代碼就可以了(╥﹏╥)
$('#tabtrsnlist').datagrid({
url: '/LINE/GetPAFOrderInfo5',
pageList: [10, 30, 50, 70, 100],
pagination: true,
singleSelect: true,
iconCls: 'icon-save',
rownumbers: true,
queryParams: queryList,
columns: [columnsAll]
//columns: fn1
})
},
dataType: 'json'
});
});
後臺C#代碼
返回json代碼出處:https://blog.csdn.net/qq_41128526/article/details/98469925
調用SP方法GetFixtureLodaDataTotal:https://blog.csdn.net/qq_41128526/article/details/98471237
//加載數據,每次點下一頁的時候觸發
public ActionResult GetPAFOrderInfo5(QueryCondition query, int page, int rows)
{
int lTotal = 0;
DataTable dtTemp = new DataTable();
string strResult = string.Empty;
LINEPTH pth = new Lib.LINE.LINEPTH();
try
{
if (query.Paramms11 == "TOTAL")
{
dtTemp = pth.GetFixtureLodaDataTotal(query);
lTotal = Convert.ToInt32(dtTemp.Rows[0][0]);
query.Paramms1 = Convert.ToString(--page);
query.Paramms2 = Convert.ToString(rows);
query.Paramms11 = "";
}
dtTemp = pth.GetFixtureLodaDataTotal(query);
}
catch (Exception ex)
{
return Json(new { IsSuccess = false, Message = ex.Message });
}
List<Dictionary<string, string>> lColumns = DataTableToJSON.DataTableToListColumns(dtTemp);
List<Dictionary<string, string>> lDataGrid = DataTableToJSON.DataTableToListGrid(dtTemp);
return new JsonResult()
{
Data = new
{
total = lTotal,
rows= lDataGrid.ToList()
}
};
}
//加載欄位
public ActionResult GetPAFOrderInfo(QueryCondition query)
{
int lTotal = 0;
DataTable dtTemp = new DataTable();
string strResult = string.Empty;
LINEPTH pth = new Lib.LINE.LINEPTH();
try
{
if (query.Paramms11 == "TOTAL")
{
dtTemp = pth.GetFixtureLodaDataTotal(query);
lTotal = Convert.ToInt32(dtTemp.Rows[0][0]);
query.Paramms11 = "";
}
dtTemp = pth.GetFixtureLodaDataTotal(query);
}
catch (Exception ex)
{
return Json(new { IsSuccess = false, Message = ex.Message });
}
List<Dictionary<string, string>> lColumns = DataTableToJSON.DataTableToListColumns(dtTemp);
//List<Dictionary<string, string>> lDataGrid = DataTableToJSON.DataTableToListGrid(dtTemp);
return new JsonResult()
{
Data = new
{
total = lTotal,
IsSuccess = true ,
lColumns = lColumns
}
};
}
Oracle SP模板
https://blog.csdn.net/qq_41128526/article/details/98471106
當然,你也可以不用SQL模板,你可以自己寫關於SQL的方法,只要你寫對應的參數跳轉過去就好了