我有点失落。我尝试实现基于 JqGrid 的解决方案,并尝试将函数用作数据类型。我猜我已经按照这本书设置了所有内容,我调用了 WS 并返回了 JSON,我在 ajax 调用中在客户端获得了成功,我使用“绑定”jqGrid,addJSONData
但网格仍然为空。我现在没有任何线索......同一页面上的其他“本地”样本可以正常工作(jsonstring ...)
我的 WS 方法如下所示:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetGridData()
{
// Load a list
InitSessionVariables();
SA.DB.DenarnaEnota.DenarnaEnotaDB db = new SAOP.SA.DB.DenarnaEnota.DenarnaEnotaDB();
DataSet ds = db.GetLookupForDenarnaEnota(SAOP.FW.DB.RecordStatus.All);
// Turn into HTML friendly format
GetGridData summaryList = new GetGridData();
summaryList.page = "1";
summaryList.total = "10";
summaryList.records = "160";
int i = 0;
foreach (DataRow dr in ds.Tables[0].Rows)
{
GridRows row = new GridRows();
row.id = dr["DenarnaEnotaID"].ToString();
row.cell = "[" + "\"" + dr["DenarnaEnotaID"].ToString() + "\""
+ "," + "\"" + dr["Kratica"].ToString() + "\""
+ "," + "\"" + dr["Naziv"].ToString() + "\""
+ "," + "\"" + dr["Sifra"].ToString() + "\""
+ "]";
summaryList.rows.Add(row);
}
return JsonConvert.SerializeObject(summaryList);
}
我的 ASCX 代码是这样的:
jQuery(document).ready(function() {
jQuery("#list").jqGrid({
datatype: function(postdata) {
jQuery.ajax({
url: '../../AjaxWS/TemeljnicaEdit.asmx/GetGridData',
data: '{}',
dataType: 'json',
type: 'POST',
contentType: "application/json; charset=utf-8",
complete: function(jsondata, stat) {
if (stat == "success") {
var clearJson = jsondata.responseText;
var thegrid = jQuery("#list")[0];
var myjsongrid = eval('(' + clearJson + ')');
alfs
thegrid.addJSONData(myjsongrid.replace(/\\/g, ''));
}
}
});
},
colNames: ['DenarnaEnotaID', 'Kratica', 'Sifra', 'Naziv'],
colModel: [{
name: 'DenarnaEnotaID',
index: 'DenarnaEnotaID',
width: 100
},
{
name: 'Kratica',
index: 'Kratica',
width: 100
},
{
name: 'Sifra',
index: 'Sifra',
width: 100
},
{
name: 'Naziv',
index: 'Naziv',
width: 100
}
],
rowNum: 15,
rowList: [15, 30, 100],
pager: jQuery('#pager'),
sortname: 'id',
// loadtext:"Nalagam zapise...",
// viewrecords: true,
sortorder: "desc",
// caption:"Vrstice",
// width:"800",
imgpath: "../Scripts/JGrid/themes/basic/images"
});
});
从 WS 我得到这样的 JSON:
{”page”:”1″,”total”:”10″,”records”:”160″,”rows”:[{"id":"18","cell":"["18","BAM","Konvertibilna marka","977"]“},{”id”:”19″,”cell”:”["19","RSD","Srbski dinar","941"]“},{”id”:”20″,”cell”:”["20","AFN","Afgani","971"]“},{”id”:”21″,”cell”:”["21","ALL","Lek","008"]“},{”id”:”22″,”cell”:”["22","DZD","Alžirski dinar","012"]“},{”id”:”23″,”cell”:”["23","AOA","Kvanza","973"]“},{”id”:”24″,”cell”:”["24","XCD","Vzhodnokaribski dolar","951"]“},{”id”:”25″,”cell”:”
………………
["13","PLN","Poljski zlot","985"]“},{”id”:”14″,”cell”:”["14","SEK","Švedska krona","752"]“},{”id”:”15″,”cell”:”["15","SKK","Slovaška krona","703"]“},{”id”:”16″,”cell”:”["16","USD","Ameriški dolar","840"]“},{”id”:”17″,”cell”:”["17","XXX","Nobena valuta","000"]“},{”id”:”1″,”cell”:”["1","SIT","Slovenski tolar","705"]“}]}
我已经注册了这个 JavaScript:
clientSideScripts.RegisterClientScriptFile("prototype.js", CommonFunctions.FixupUrlWithoutSessionID("~/WebUI/Scripts/prototype-1.6.0.2.js"));
clientSideScripts.RegisterClientScriptFile("jquery.js", CommonFunctions.FixupUrlWithoutSessionID("~/WebUI/Scripts/JGrid/jquery.js"));
clientSideScripts.RegisterClientScriptFile("jquery.jqGrid.js", CommonFunctions.FixupUrlWithoutSessionID("~/WebUI/Scripts/JGrid/jquery.jqGrid.js"));
clientSideScripts.RegisterClientScriptFile("jqModal.js", CommonFunctions.FixupUrlWithoutSessionID("~/WebUI/Scripts/JGrid/js/jqModal.js"));
clientSideScripts.RegisterClientScriptFile("jqDnR.js", CommonFunctions.FixupUrlWithoutSessionID("~/WebUI/Scripts/JGrid/js/jqDnR.js"));
基本上我认为它一定是愚蠢的......但我现在想不通......