webservice怎么生成带总条数的JSON?

legolas_z 2008-09-24 04:44:19
我的后台代码这样写的:

[WebMethod]
[System.Xml.Serialization.XmlInclude(typeof(user))]
public ArrayList GetUserList1(int start, int limit)
{
ArrayList al = new ArrayList();
Shoucao_UsersEntity _ue = new Shoucao_UsersEntity();
SqlQuery sql = new SqlQuery();
sql.TableName = _ue.TableName;
sql.PageSize = limit;
sql.PageIndex = start;
sql.SqlReturnField = "*";
sql.SqlOrderField = _ue[0, Shoucao_UsersEnum.UserID];
sql.SqlWhere = "";
int TotalNum = 0;
IList<Shoucao_UsersEntity> list =
DataFactory<Shoucao_UsersSqlProvider>.CreateProvider.GetPages(sql, out TotalNum);
foreach (Shoucao_UsersEntity _su in list)
{
user _u = new user();
_u.UserID = _su.UserID.ToString();
_u.UserName = _su.UserName;
al.Add(_u);
}
return al;


前台JS代码是这样:

Ext.Ajax.request({
url: 'WebService/AjaxDemo.asmx/GetUserList1',
jsonData: {start:0,limit:4},
method: 'POST',
success: onSuccess,
failure: onFailure
});

function onSuccess(request, options) {
// 服务器返回json形式的结果
var result = Ext.util.JSON.decode(request.responseText);
var cm = new Ext.grid.ColumnModel([
{header:'UserID', dataIndex:'UserID',sortable:true,width:10},
{header:'用户名', dataIndex:'UserName',sortable:true}
]);
var ds = new Ext.data.Store({
// url: 'WebService/AjaxDemo.asmx/GetUserList',
proxy: new Ext.data.MemoryProxy(result),
reader:new Ext.data.JsonReader({root: 'd'},
[
{name: 'UserID'},
{name: 'UserName'}
]
)
});
ds.load();

var bbar = new Ext.PagingToolbar(
{
pageSize: 4,
store: ds,
displayInfo: true,
displayMsg: '当前显示 {0} - {1} 条,共 {2} 条',
emptyMsg: "没有数据"
}
);

var grid = new Ext.grid.GridPanel({
frame: true,
enableHdMenu: true,
width :600,
height:300,
title:'用户列表',
loadMask: {msg:'正在加载数据,请稍侯……'},
el: 'gridpage',
ds: ds,
cm: cm,
bbar: bbar,
viewConfig: {
forceFit:true
}
});
grid.render();

//Ext.Msg.alert('返回结果', result.d);
}
function onFailure(request, options) {
alert(request.responseText);
}


我想增加一个分页功能,可webservice返回的数据是这样的:
{"d":[{UserID":"50","UserName":"ding"},{"UserID":"51","UserName":"dfs1"},{"UserID":"55","UserName":"pp"},{"UserID":"57","UserName":"qwe"}]}

现在我怎么样加上一个总条数呢?就是说我想在"d":之前加上total:40,最后的结果是
{"total":"40","d":[{UserID":"50","UserName":"ding"},{"UserID":"51","UserName":"dfs1"},{"UserID":"55","UserName":"pp"},{"UserID":"57","UserName":"qwe"}]}

应该怎么做呢??
...全文
201 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
likui0623 2010-04-14
  • 打赏
  • 举报
回复
期待这样的问题解决。
bonnibell 2008-09-25
  • 打赏
  • 举报
回复
http://blog.csdn.net/chiangbt/archive/2008/01/24/2064117.aspx

参考一下服务器端生成的json的格式

{totalProperty:100,root:[{'id':'0','name':'name0','descn':'descn0'},{'id':'1','name':'name1','descn':'descn1'},{'id':'2','name':'name2','descn':'descn2'},{'id':'3','name':'name3','descn':'descn3'},{'id':'4','name':'name4','descn':'descn4'},{'id':'5','name':'name5','descn':'descn5'},{'id':'6','name':'name6','descn':'descn6'},{'id':'7','name':'name7','descn':'descn7'},{'id':'8','name':'name8','descn':'descn8'},{'id':'9','name':'name9','descn':'descn9'}]}

俺的一个例子

using Jayrock.Json;
....................

IDbCommand dbCommandSelect = session.getDbCommand("select count(*) from db_Works");
string strTotol = dbCommandSelect.ExecuteScalar().ToString();
JsonTextWriter writer = new JsonTextWriter();
writer.WriteStartObject();

writer.WriteMember("totalProperty");
writer.WriteString(strTotol);

writer.WriteMember("root");
writer.WriteStartArray();
dbCommandSelect = session.getDbCommand("select * from db_Works");
using (IDataReader dr = dbCommandSelect.ExecuteReader())
{
while (dr.Read())
{
writer.WriteStartObject();
writer.WriteMember("ID");
writer.WriteString(dr[0].ToString().Trim());
writer.WriteMember("Name");
writer.WriteString(dr[1].ToString().Trim());
writer.WriteEndObject();
}
}
writer.WriteEndArray();
writer.WriteEndObject();
Response.Write(writer.ToString());


legolas_z 2008-09-25
  • 打赏
  • 举报
回复
我知道格式,问题是直接写怎么写?我也知道分页需要那个参数,现在不就是因为那个参数得不到我才来问了的嘛
xuyiazl 2008-09-24
  • 打赏
  • 举报
回复
{pageCount:12,d:[......]}
bonnibell 2008-09-24
  • 打赏
  • 举报
回复
楼主的Ext.data.JsonReader 缺少一个参数
totalProperty: 'totalProperty'
请看Ext相关的例子

生成json时
先取得总条数
在最前面加上这个参数和总条数
sxmonsy 2008-09-24
  • 打赏
  • 举报
回复
你也直接写JSON就行了.
wang51346 2008-09-24
  • 打赏
  • 举报
回复
up
dzjvb 2008-09-24
  • 打赏
  • 举报
回复
直接写json比较简单,
mark
lemong 2008-09-24
  • 打赏
  • 举报
回复
自定义一个类型返回,比较好,或者直接用xml返回

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧