欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JQuery Ajax动态生成Table表格

程序员文章站 2022-06-14 15:18:13
前言:   本示例大概功能是前台通过jquery的ajax调用一般处理程序(handler),获取表格需要显示的信息,然后转换成json格式返回给前台,前台获取到数据后循...

前言:

  本示例大概功能是前台通过jquery的ajax调用一般处理程序(handler),获取表格需要显示的信息,然后转换成json格式返回给前台,前台获取到数据后循环构建表格的行,最好把行附加到表里。

目标:

  a 熟悉简单jquery ajax的使用

  b 了解如何构造基本的json格式的数据(构建json也可以通过第三方的dll)

  c 熟悉下handler的基本用法

1 简单效果图

JQuery Ajax动态生成Table表格

2 前台代码

<%@ page language="c#" autoeventwireup="true" codefile="dialogajax.aspx.cs" inherits="jquerytest_dialogajax" %>
<!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></title>
  <link href="../jqueryui/jquery-ui-1.8.5.custom.css" rel="stylesheet" type="text/css" />
  <script src="../jqueryui/jquery-1.4.2.min.js" type="text/javascript"></script>
  <script src="../jqueryui/jquery-ui-1.8.5.custom.min.js" type="text/javascript"></script>
  <style type="text/css">
    #divtb
    {
      width:800px;
      border:1px solid #aaa;
      margin:0 auto;
    }
    .even{background:#cccccc;}
    .odd{background:#ffffff;}
  </style>
  <script type="text/javascript">
    //获取发布模块类型
    function getmoduleinfo() {
      $.ajax({
        type: "get",
        datatype: "json",
        url: "../handler/testhandler.ashx?method=getmoduleinfo",
        //data: { id: id, name: name },
        success: function(json) {
          var typedata = json.module;
          $.each(typedata, function(i, n) {
            var tbbody = ""
            var trcolor;
            if (i % 2 == 0) {
              trcolor = "even";
            }
            else {
              trcolor = "odd";
            }
            tbbody += "<tr class='" + trcolor + "'><td>" + n.modulenum + "</td>" + "<td>" + n.modulename + "</td>" + "<td>" + n.moduledes + "</td></tr>";
            $("#mytb").append(tbbody);
          });
        },
        error: function(json) {
          alert("加载失败");
        }
      });
    }
    $(function() {
      getmoduleinfo();
    });
  </script>
</head>
<body>
  <form id="form1" runat="server">
  <div id="divtb">
    <table id="mytb" style=" width:100%">
    </table>
  </div>
  </form>
</body>
</html>

3 handler代码

<%@ webhandler language="c#" class="testhandler" %>
using system;
using system.web;
using system.collections.generic;
using system.text;
using datadal;
using dataenity;
public class testhandler : ihttphandler {
  httprequest request;
  httpresponse response;
  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";
    request = context.request;
    response = context.response;
    string method = request["method"].tostring();
    system.reflection.methodinfo methodinfo = this.gettype().getmethod(method);
    methodinfo.invoke(this, null);
  }
  public void getmoduleinfo()
  {
    stringbuilder sb = new stringbuilder();
    string jsondata = string.empty;
    list<module> lsmodule = moduledal.getmodulelist();
    sb.append("{\"module\":[");
    for (int i = 0; i < lsmodule.count; i++)
    {
      jsondata = "{\"modulenum\":" + "\"" + lsmodule[i].modulenum + "\"" + ",\"modulename\":" + "\"" + lsmodule[i].modulename + "\"" + ",\"moduledes\":" + "\"" + lsmodule[i].moduledes + "\"" + "},";
      sb.append(jsondata);
    }
    if (lsmodule.count > 0)
      sb = sb.remove(sb.length - 1, 1);
    sb.append("]}");
    response.write(sb);
  }
  public bool isreusable
  {
    get {
      return false;
    }
  }
}

以上代码超简单吧,jquery ajax动态生成table表格的内容就全部完成了,希望对大家有所帮助。