Jqgrid show with xml

   1:  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
   2:   
   3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   4:  <html xmlns="http://www.w3.org/1999/xhtml">
   5:  <head runat="server">
   6:      <title></title>
   7:      <script src="jquery.jqGrid-4.3.1/js/jquery-1.5.2.min.js" type="text/javascript"></script>
   8:      <script src="jquery.jqGrid-4.3.1/js/i18n/grid.locale-cn.js" type="text/javascript"></script>
   9:      <script src="jquery.jqGrid-4.3.1/js/jquery.jqGrid.min.js" type="text/javascript"></script>
  10:      <link href="jquery.jqGrid-4.3.1/css/ui.jqgrid.css" rel="stylesheet" type="text/css" />
  11:      <script src="jquery.xml2json.js" type="text/javascript"></script>
  12:      <script src="Json2String.js" type="text/javascript"></script>
  13:      <script src="string2json.js" type="text/javascript"></script>
  14:      <link href="Jquery%20UI/jquery-ui-1.8.18.custom/css/smoothness/jquery-ui-1.8.18.custom.css"
  15:          rel="stylesheet" type="text/css" />
  16:      <link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/smoothness/jquery-ui.css" />
  17:      <script type="text/javascript">
  18:          $(function () {
  19:   
  20:              var firstNode = new Array(); //主表字段
  21:              var secondNode = new Array(); //子表字段
  22:              var secondNodeParent = new Array(); //有子节点的第一层节点
  23:              var thirdNode = new Array();
  24:    var urlCollection=new Array();
  25:              $.get("dd.xml", function (data) { //获取 字段
  26:   
  27:                  var fcounter = 0;
  28:                  var scounter = 0;
  29:                  var scounterP = 0;
  30:                  for (var i = 0; i < data.documentElement.childNodes.length; i++) {//第一层
  31:   
  32:                      var nn = data.documentElement.childNodes[i].tagName;
  33:                      var l = data.documentElement.childNodes[i].childNodes.length;
  34:                      if (typeof (nn) == "undefined") {
  35:                          continue;
  36:                      }
  37:                      else {
  38:                          if (l < 2) {
  39:                              firstNode[fcounter] = nn.replace("my:", "");
  40:                              fcounter += 1;
  41:                          }
  42:   
  43:                          if (l > 1) {//第二层
  44:   
  45:                              var j = 0;
  46:                              for (j; j < l; j++) {
  47:                                  var sname = data.documentElement.childNodes[i].childNodes[j].tagName;
  48:                                  if (typeof (sname) == "undefined") {
  49:                                      continue;
  50:                                  }
  51:                                  else {
  52:                                      if (data.documentElement.childNodes[i].childNodes[j].childNodes.length < 2) {//说明没有子节点,就是子表 演展示的数据了
  53:                                          secondNodeParent[scounterP] = nn.replace("my:", "");
  54:                                          scounterP += 1;
  55:                                          secondNode[scounter] = sname.replace("my:", "");
  56:                                          scounter += 1;
  57:                                      }
  58:   
  59:   
  60:                                  }
  61:   
  62:                              }
  63:                          }
  64:                      }
  65:                  }
  66:                  var colModels = new String();
  67:                  //构造模型
  68:                  for (var i = 0; i < firstNode.length; i++) {
  69:                      if (i == 0) {
  70:                          colModels += "[";
  71:                      }
  72:                      if (i != firstNode.length - 1) {
  73:                          colModels += "{" + "name:" + "'" + firstNode[i] + "'," + "index:" + "'" + firstNode[i] + "'}" + ",";
  74:   
  75:                      }
  76:                      else {
  77:                          colModels += "{" + "name:" + "'" + firstNode[i] + "'," + "index:" + "'" + firstNode[i] + "'}]";
  78:                      }
  79:                  }
  80:                  colModels = eval(colModels);
  81:   
  82:   
  83:   
  84:   
  85:   
  86:                  var colName = new Array();
  87:                  for (var i = 0; i < firstNode.length; i++) {
  88:                      colName[i] = firstNode[i];
  89:   
  90:                  }
  91:   
  92:                  var sonColName = new Array();
  93:                  for (var i = 0; i < secondNode.length; i++) {
  94:                      sonColName[i] = secondNode[i];
  95:   
  96:                  }
  97:   
  98:                  var SonColModels = new String();
  99:                  //构造模型
 100:                  for (var i = 0; i < secondNode.length; i++) {
 101:                      if (i == 0) {
 102:                          SonColModels += "[";
 103:                      }
 104:                      if (i != secondNode.length - 1) {
 105:                          SonColModels += "{" + "name:" + "'" + secondNode[i] + "'," + "index:" + "'" + secondNode[i] + "'}" + ",";
 106:   
 107:                      }
 108:                      else {
 109:                          SonColModels += "{" + "name:" + "'" + secondNode[i] + "'," + "index:" + "'" + secondNode[i] + "'}]";
 110:                      }
 111:                  }
 112:                  SonColModels = eval(SonColModels);
 113:   
 114:                  var url = ["dd.xml", "ddd.xml"];
 115:                  //定义 grid
 116:                  var subid;
 117:                  var subPagerid;
 118:                  var lastsel;
 119:                  jQuery("#sg1").jqGrid({
 120:   
 121:                      datatype: "local",
 122:                      height: "300px",
 123:                      width: "800px",
 124:                      colNames: colName,
 125:                      colModel: colModels,
 126:                      rowNum: 8,
 127:                      // editurl: "Handler.ashx?q=1&id=0", //编辑 ajax请求的url
 128:                      rowList: [8, 10, 20, 30],
 129:                      pager: '#psg1',
 130:                      sortname: 'name',
 131:                      viewrecords: true,
 132:                      sortorder: "desc",
 133:                      multiselect: false,
 134:                      subGrid: true,
 135:                      caption: "主表",
 136:   
 137:                      // define the icons in subgrid
 138:                      subGridOptions: {
 139:                          "plusicon": "ui-icon-triangle-1-e",
 140:                          "minusicon": "ui-icon-triangle-1-s",
 141:                          "openicon": "ui-icon-arrowreturn-1-e",
 142:   
 143:                          "reloadOnExpand": false,
 144:   
 145:                          "selectOnExpand": true
 146:                      },
 147:                      subGridRowExpanded: function (subgrid_id, row_id) {
 148:   
 149:                          var subgrid_table_id, pager_id;
 150:                          subgrid_table_id = subgrid_id + "_t";
 151:                          subid = subgrid_table_id;
 152:                          pager_id = "p_" + subgrid_table_id;
 153:                          subPagerid = pager_id;
 154:                          $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");
 155:                          jQuery("#" + subgrid_table_id).jqGrid({
 156:                              //  url: "Handler.ashx?q=2&id=" + row_id + "&ss=" + subgrid_id,
 157:                              datatype: "local",
 158:                              caption: "子表",
 159:                              colNames: sonColName,
 160:                              colModel: SonColModels,
 161:                              rowNum: 20,
 162:                              pager: pager_id,
 163:                              // sortname: 'num',
 164:                              //sortorder: "asc",
 165:                              height: '100%',
 166:                              width: '100%'
 167:   
 168:   
 169:                              //   editurl: "Handler.ashx" //编辑 ajax请求的url
 170:                          });
 171:                          jQuery("#" + subid).jqGrid('navGrid', '#' + subPagerid, { edit: true, add: true, del: true }, {}, {}, {}, { multipleSearch: true, multipleGroup: true }); //配置多项查询
 172:   
 173:                          $.get(url[row_id], function (datas) {
 174:                              var data = $.xml2json(datas);
 175:                              var s = $.toJSON(data);
 176:                              while (true) {
 177:                                  if (s.indexOf("my:") == -1) {
 178:                                      break;
 179:                                  }
 180:                                  else {
 181:                                      s = s.replace("my:", "");
 182:                                  }
 183:                              }
 184:                              var JsonObject = eval("[" + s + "]");
 185:                              //var asd = JsonObject[0].preferences.tripClass;
 186:                              var model = new Array();
 187:                              for (var s = 0; s < secondNode.length; s++) {
 188:   
 189:                                  model[s] = eval("JsonObject[0]." + secondNodeParent[0] + "." + secondNode[s]);
 190:                              }
 191:   
 192:                              var rowDataModel = new String();
 193:                              for (var c = 0; c < firstNode.length; c++) {
 194:                                  if (c == 0) {
 195:                                      rowDataModel += "{";
 196:                                  }
 197:   
 198:                                  if (c != firstNode.length - 1) {
 199:   
 200:                                      rowDataModel += "\"" + secondNode[c] + "\":\"" + model[c] + "\",";
 201:   
 202:                                  }
 203:                                  else {
 204:                                      rowDataModel += "\"" + secondNode[c] + "\":\"" + model[c] + "\"}";
 205:                                  }
 206:                              }
 207:                              rowDataModel = eval("[" + rowDataModel + "]");
 208:   
 209:                              jQuery("#" + subid).jqGrid("addRowData", 0, rowDataModel);
 210:                          })
 211:                      }
 212:                  });
 213:                  jQuery("#sg1").jqGrid('navGrid', '#psg1', { edit: true, add: true, del: true }, {}, {}, {}, { multipleSearch: true, multipleGroup: true }); //配置多项查询
 214:                  var row = 0;
 215:                  for (var l = 0; l < url.length; l++) {
 216:                      $.get(url[l], function (data) {
 217:                          data = $.xml2json(data);
 218:                          var s = $.toJSON(data);
 219:                          while (true) {
 220:                              if (s.indexOf("my:") == -1) {
 221:                                  break;
 222:                              }
 223:                              else {
 224:                                  s = s.replace("my:", "");
 225:                              }
 226:                          }
 227:                          //  s = s.join("\"\"");
 228:                          var JsonObject = eval("[" + s + "]");
 229:   
 230:   
 231:                          var model = new Array();
 232:                          for (var s = 0; s < firstNode.length; s++) {
 233:   
 234:                              model[s] = eval("JsonObject[0]." + firstNode[s]);
 235:                          }
 236:   
 237:                          var rowDataModel = new String();
 238:                          for (var c = 0; c < firstNode.length; c++) {
 239:                              if (c == 0) {
 240:                                  rowDataModel += "{";
 241:                              }
 242:   
 243:                              if (c != firstNode.length - 1) {
 244:   
 245:                                  rowDataModel += "\"" + firstNode[c] + "\":\"" + model[c] + "\",";
 246:   
 247:                              }
 248:                              else {
 249:                                  rowDataModel += "\"" + firstNode[c] + "\":\"" + model[c] + "\"}";
 250:                              }
 251:                          }
 252:                          rowDataModel = eval("[" + rowDataModel + "]");
 253:   
 254:   
 255:   
 256:                          jQuery("#sg1").jqGrid("addRowData", row, rowDataModel);
 257:                          row += 1;
 258:   
 259:                      })
 260:                  }
 261:   
 262:                  $("#gview_sg1").find("div:eq(1)").addClass("hs");
 263:              })
 264:              //get结束
 265:   
 266:   
 267:   
 268:          }) 
 269:      </script>
 270:      <style type="text/css">
 271:          .hs
 272:          {
 273:              height: 40px;
 274:          }
 275:          #gview_sg1 div table thead tr th
 276:          {
 277:              height: 40px;
 278:          }
 279:      </style>
 280:  </head>
 281:  <body>
 282:      <table id="sg1">
 283:      </table>
 284:      <div id="psg1">
 285:      </div>
 286:  </body>
 287:  </html>

转载于:https://www.cnblogs.com/Mr-Joe/archive/2012/04/17/2453312.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值