首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

(jquery jqgrid json格式 asp.net)!

2012-04-23 
(jquery jqgrid json格式 asp.net)求助!!!今天用asp.net配置jqgrid,一天都没有成功,相当的郁闷,请高手指点

(jquery jqgrid json格式 asp.net)求助!!!
今天用asp.net配置jqgrid,一天都没有成功,相当的郁闷,请高手指点,我的分不多,希望见谅
用的是示例数据库Northwind
以下为前台代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="jqgrid.aspx.cs" Inherits="jQueryPages.jqgrid" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>jqgrid</title>
<link rel="Stylesheet" type="text/css" href="jqGrid/themes/coffee/grid.css" />

<script type="text/javascript" src="jqGrid/jquery.js"></script>
<script type="text/javascript" src="jqGrid/js/grid.base.js"></script>
<script type="text/javascript" src="jqGrid/js/grid.locale-cn.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("#list").jqGrid({
  url:'jqgrid.ashx',
  datatype: 'json',
  mtype: 'GET',
  colNames:['OrderId','CustomerId', 'ShipName'],
  colModel :[ 
  {name:'OrderId', index:'OrderId', width:100}, 
  {name:'CustomerId', index:'CustomerId', width:100}, 
  {name:'ShipName', index:'ShipName', width:100, align:'right'}],
  pager: $('#pager'),
  rowNum:10,
  rowList:[10,20,30],
  sortname: 'id',
  sortorder: "desc",
  viewrecords: true,
  imgpath: 'jqgrid/themes/basic/images',
  caption: 'My first grid'
  }); 
});
</script>
</head>
<body>
  <form id="form1" runat="server" enableviewstate="false">
  <table id="list" class="scroll"></table> 
  <div id="pager" class="scroll" style="text-align:center;"></div> 
  </form>
</body>
</html>

以下为jqgrid.ashx代码
using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

namespace jQueryPages
{
  /// <summary>
  /// $codebehindclassname$ 的摘要说明
  /// </summary>
  [WebService(Namespace = "http://tempuri.org/")]
  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  public class jqgrid1 : IHttpHandler
  {
  public void ProcessRequest(HttpContext context)
  {
  //不让浏览器缓存
  context.Response.Buffer = true;
  context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
  context.Response.AddHeader("pragma", "no-cache");
  context.Response.AddHeader("cache-control", "");
  context.Response.CacheControl = "no-cache";
  context.Response.ContentType = "text/plain";

  DataTable dt = SqlHelper.ExecuteDataSet("select top 20 OrderId,CustomerId,ShipName from Orders order by Orderid asc").Tables[0];
  string jsonData = JsonHelper.JsonForJqgrid(dt);
  context.Response.Write(jsonData);  
  }

  public bool IsReusable
  {
  get
  {


  return false;
  }
  }
  }
}

以下为上面ashx中引用的JsonForJqrid类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using Newtonsoft.Json;
using System.Text;
using System.IO;

namespace jQueryPages
{
  public class JsonHelper
  {
  public JsonHelper()
  {
  //
  //TODO: 在此处添加构造函数逻辑
  //
  }

  public static string DataTableToJSON(DataTable dt, string dtName)
  {
  StringBuilder sb = new StringBuilder();
  StringWriter sw = new StringWriter(sb);

  using (JsonWriter jw = new JsonTextWriter(sw))
  {
  JsonSerializer ser = new JsonSerializer();
  jw.WriteStartObject();
  jw.WritePropertyName(dtName);
  jw.WriteStartArray();
  foreach (DataRow dr in dt.Rows)
  {
  jw.WriteStartObject();

  foreach (DataColumn dc in dt.Columns)
  {
  jw.WritePropertyName(dc.ColumnName);
  ser.Serialize(jw, dr[dc].ToString());
  }

  jw.WriteEndObject();
  }
  jw.WriteEndArray();
  jw.WriteEndObject();

  sw.Close();
  jw.Close();

  }

  return sb.ToString();
  }

  public static string JsonForJqgrid(DataTable dt)
  {
  StringBuilder jsonBuilder = new StringBuilder();
  jsonBuilder.Append("{\"");
  jsonBuilder.Append("\"page\":1,\"total\":" + Northwind.GetPageCount("Orders") + ",\"records\":" + dt.Rows.Count + ",\"rows\"");
  jsonBuilder.Append("\":[");
  for (int i = 0; i < dt.Rows.Count; i++)
  {
  jsonBuilder.Append("{");
  for (int j = 0; j < dt.Columns.Count; j++)
  {
  jsonBuilder.Append("\"");
  jsonBuilder.Append(dt.Columns[j].ColumnName);
  jsonBuilder.Append("\":\"");
  jsonBuilder.Append(dt.Rows[i][j].ToString());
  jsonBuilder.Append("\",");
  }
  jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  jsonBuilder.Append("},");
  }
  jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  jsonBuilder.Append("]");
  jsonBuilder.Append("}");
  return jsonBuilder.ToString();  
  }
  }
}

运行后不出现任何错误,断点Json数据时,和jqgrid的要求的Json数据格式是相符的,但是内容怎么着都不出来
不知道这里怎么上传附件,我可以将解决方案全部传上来就好了

[解决办法]
不要用那个数据库的数据看看,自定义一个数组,放一些数据进去看看有没有显示,如果没有,可能是哪里细节没注意到
[解决办法]
如果以上所有调试都没有效果,
看看那个很可能 enableviewstate="false"有点关系

热点排行