zoukankan      html  css  js  c++  java
  • DataTable转Json,Json转DataTable

    // 页面加载时
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            //判断是否异步请求
            if (Request.QueryString["ajax"] == "1")
            {
                ProcessRequest();
            }
        }
    
        /// <summary>
        /// 处理异步请求
        /// </summary>
        private void ProcessRequest()
        {
            Response.ContentType = "text/html";
    
            string json = Request.Form["json"];
            //反序列化DataTable
            DataTable newdtb = Json2Dtb(json);
    
            //序列化DataTable为JSON
            string back = Dtb2Json(newdtb);
            Response.Write(back);
            Response.End();
        }
    
        /// <summary>
        /// DataTable转Json
        /// </summary>
        /// <param name="dtb"></param>
        /// <returns></returns>
        private string Dtb2Json(DataTable dtb)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            ArrayList dic = new ArrayList();
    
            foreach (DataRow row in dtb.Rows)
            {
                Dictionary<string, object> drow = new Dictionary<string, object>();
                foreach (DataColumn col in dtb.Columns)
                {
                    drow.Add(col.ColumnName, row[col.ColumnName]);
                }
                dic.Add(drow);
            }
    
            return jss.Serialize(dic);
        }
    
        /// <summary>
        /// Json转DataTable
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        private DataTable Json2Dtb(string json)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            ArrayList dic = jss.Deserialize<ArrayList>(json);
            DataTable dtb = new DataTable();
    
            if (dic.Count > 0)
            {
                foreach (Dictionary<string, object> drow in dic)
                {
                    if (dtb.Columns.Count == 0)
                    {
                        foreach (string key in drow.Keys)
                        {
                            dtb.Columns.Add(key, drow[key].GetType());
                        }
                    }
    
                    DataRow row = dtb.NewRow();
                    foreach (string key in drow.Keys)
                    {
    
                        row[key] = drow[key];
                    }
                    dtb.Rows.Add(row);
                }
            }
            return dtb;
        }
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    
        <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    
        <script type="text/javascript" src="js/json2.js"></script>
    
        <script type="text/javascript">
            //onload
            $(function() {
                //点击botton1
                $("#botton1").click(function() {
                    var url = "default.aspx?ajax=1";
                    var dtb = generateDtb();
                    //序列化对象
                    var postdata = JSON.stringify(dtb);
                    //异步请求
                    $.post(url, { json: postdata }, function(json) {
                        createTable(json);
                    }, "json")
    
                });
            });
    
            //生成DataTable对象
            function generateDtb() {
                var dtb = new Array();
                for (var i = 0; i < 10; i  ) {
                    var row = new Object();
                    row.col1 = i;
                    row.col2 = i % 2 == 0 ? true : false;
                    row.col3 = i   "he
    ll"ow";
                    dtb.push(row);
                }
                return dtb;
            }
    
            //显示Json中的数据
            function createTable(json) {
                var table = $("<table border='1'></table>");
                for (var i = 0; i < json.length; i  ) {
                    o1 = json[i];
                    var row = $("<tr></tr>");
                    for (key in o1) {
                        var td = $("<td></td>");
                        td.text(o1[key].toString());
                        td.appendTo(row);
                    }
                    row.appendTo(table);
                }
                table.appendTo($("#back"));
            }
          
        </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="botton1" type="button" value="button" />
            <div id="back">
            </div>
        </div>
        </form>
    </body>
    </html>
    
     
    

      

  • 相关阅读:
    No.5 Verilog 建模方式
    No.1 Verilog HDL简介
    [好文推荐]能大大提升工作效率和时间效率的9个重要习惯
    org.apache.commons.net.ftp.FTPClient上传文件大小改变的解决方法
    利用myeclipse建立webservice服务端和客户端
    FtpClient.storeFile返回false解决方法
    jquery表单formSerialize方法乱码问题解决
    Apache FTPClient下载地址
    Myeclipse发生java heap space错误
    UtraEdit的下载地址,无需注册码的
  • 原文地址:https://www.cnblogs.com/dqh123/p/9469868.html
Copyright © 2011-2022 走看看