`
zhy589
  • 浏览: 39574 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

JQuery将DataTable数据转换成JSON数据

阅读更多
JQuery将DataTable数据转换成JSON数据

动态创建表格显示数据
一般处理程序JsonDate.ashx

public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        DataTable data2 = myData();

        string str = DataTableToJson("myJson", data2);//构建的json数据

        context.Response.Write(str);
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }


    //用datatable做数据,数据模拟
    public DataTable myData()
    {
        DataTable dt = new DataTable();
        DataColumn dc;
        DataRow dr;

        dc = new DataColumn("Name", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);
        dc = new DataColumn("Email", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);
        dc = new DataColumn("Phon", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);
        dc = new DataColumn("Move", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);
        dc = new DataColumn("Pan", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);
        dc = new DataColumn("select", System.Type.GetType("System.String"));
        dt.Columns.Add(dc);
        for (int i = 1; i < 7; i++)
        {
            dr = dt.NewRow();
            dr["Name"] = "Name" + i.ToString();
            dr["Email"] = "Email" + i.ToString();
            dr["Phon"] = "Phon" + i.ToString();
            dr["Move"] = "Move" + i.ToString();
            dr["Pan"] = "Pan" + i.ToString();
            dr["select"] = i.ToString();
            dt.Rows.Add(dr);
        }

        int count = dt.Rows.Count;
        return dt;
    }

    //将datatable数据转换成JSON数据
    public string DataTableToJson(string jsonName, DataTable dt)
    {
        StringBuilder Json = new StringBuilder();
        Json.Append("[");
        if (dt.Rows.Count > 0)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Json.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    Json.Append(dt.Columns[j].ColumnName.ToString() + ":\"" + dt.Rows[i][j].ToString() + "\"");
                    if (j < dt.Columns.Count - 1)
                    {
                        Json.Append(",");
                    }
                }
                Json.Append("}");
                if (i < dt.Rows.Count - 1)
                {
                    Json.Append(",");
                }
            }
        }
        Json.Append("]");
        return Json.ToString();
    }

    //列表数据转换到json数据
    public string ObjectToJson<T>(string jsonName, IList<T> IL)
    {
        StringBuilder Json = new StringBuilder();
        Json.Append("[");
        if (IL.Count > 0)
        {
            for (int i = 0; i < IL.Count; i++)
            {
                T obj = Activator.CreateInstance<T>();
                Type type = obj.GetType();
                PropertyInfo[] pis = type.GetProperties();
                Json.Append("{");
                for (int j = 0; j < pis.Length; j++)
                {
                    Json.Append(pis[j].Name.ToString() + ":\"" + pis[j].GetValue(IL[i], null) + "\"");
                    if (j < pis.Length - 1)
                    {
                        Json.Append(",");
                    }
                }
                Json.Append("}");
                if (i < IL.Count - 1)
                {
                    Json.Append(",");
                }
            }
        }
        Json.Append("]");
        return Json.ToString();
    }

     页面Default.aspx



function GetData()
    {
     $.getJSON(
      "JsonData.ashx",//产生Json数据的服务端页面
      function(json)
      {
        for(var i=0;i<json.length;i++)
     {
                     //开始
                        var index=-1;
                        var txtTRLastIndex = findObj("txtTRLastIndex",document);
                        var rowID = parseInt(txtTRLastIndex.value);
                        var signFrame = findObj("SignFrame",document);
                        //添加行
                        var newTR = signFrame.insertRow(signFrame.rows.length);
                        newTR.id = "SignItem" + rowID;
                        //添加列:序号
                        var newNameTD=newTR.insertCell(0);
                        //添加列内容
                        newNameTD.innerHTML = newTR.rowIndex.toString();
                        //添加列:姓名
                        var newNameTD=newTR.insertCell(1);
                        //添加列内容
                        newNameTD.innerHTML = "<input name='txtName" + rowID + "' id='txtName" + rowID + "' value='"+json[i].Name+"' type='text' size='12' />";
                        //添加列:电子邮箱
                        var newEmailTD=newTR.insertCell(2);
                        //添加列内容
                        newEmailTD.innerHTML = "<input name='txtEMail" + rowID + "' id='txtEmail" + rowID + "' value='"+json[i].Email+"' type='text' size='20' />";
                        //添加列:电话
                        var newTelTD=newTR.insertCell(3);
                        //添加列内容
                        newTelTD.innerHTML = "<input name='txtTel" + rowID + "' id='txtTel" + rowID + "' value='"+json[i].Phon+"' type='text' size='10' />";
                        //添加列:手机
                        var newMobileTD=newTR.insertCell(4);
                        //添加列内容
                        newMobileTD.innerHTML = "<input name='txtMobile" + rowID + "' id='txtMobile" + rowID + "' value='"+json[i].Move+"' type='text' size='12' />";
                        //添加列:公司名
                        var newCompanyTD=newTR.insertCell(5);
                        //添加列内容
                        newCompanyTD.innerHTML = "<input name='txtCompany" + rowID + "' id='txtCompany" + rowID + "' value='"+json[i].Pan+"' type='text' size='20' />";
                       
                        //添加下拉框
                        var newCompanyTD=newTR.insertCell(6);
                        newCompanyTD.innerHTML = "<select id='Select"+rowID+"'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option> </select>";
                       
                         //动态选中下拉框
                          for(var j=0;j<document.getElementById("Select"+rowID).options.length;j++)  
                            {  
                                if(document.getElementById("Select"+rowID).options[j].text==json[i].select)  
                                index=j;  
                            } 
                               if(index>=0)
                                 document.getElementById("Select"+rowID).options[index].selected=true;
                             
      
                        //添加列:删除按钮
                        var newDeleteTD=newTR.insertCell(7);
                        //添加列内容
                        newDeleteTD.innerHTML = "<div align='center' style='width:40px'><a href='javascript:;' onclick=\"DeleteSignRow('SignItem" + rowID + "')\">删除</a></div>";
                        //将行号推进下一行
                        txtTRLastIndex.value = (rowID + 1).toString();
     }
      }
     
     
      )
    }

分享到:
评论

相关推荐

    jquery ajax Datatable与json之间数据转换

    jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换...

    Jquery dataTable后台获取数据示例

    5. **JSON数据响应**: DataTables 需要JSON格式的数据,所以Action需要将结果集转化为JSON并返回给前端。 6. **前端回调处理**: DataTables 在加载数据后,会触发`drawCallback`等回调函数,你可以在这里进行进一步...

    Jquery dataTable中文API中文文档

    JQuery DataTable 是一个高度灵活且功能丰富的插件,能够将HTML表格转换成具有高级交互性的动态表格。它支持复杂的数据排序、搜索、分页等功能,并能很好地与Bootstrap等前端框架结合使用。此中文文档详细介绍了如何...

    JQuery DataTable中文文档API.chm

    `jQuery DataTables` 是一个功能强大的JavaScript库,用于将HTML表格转换为高度可配置且交互式的数据展示工具。它提供了丰富的搜索、排序、过滤和分页功能,使得在网页上处理大量数据变得更加便捷。`JQuery ...

    jquery的DataTable

    jQuery的DataTable是一个强大的、高度可配置的JavaScript库,用于将HTML表格转换为功能丰富的数据网格。它提供了丰富的排序、过滤、分页、搜索和显示功能,大大增强了网页中表格的交互性和用户体验。DataTable插件是...

    Jquery dataTable完整例子(取数据、分页、样式等)

    标题“Jquery dataTable完整例子(取数据、分页、样式等)”和描述表明,我们将讨论如何利用这个插件实现数据的获取、分页、排序和搜索功能,并且将看到一个具体的实例,帮助理解如何与JSON数据进行交互。...

    Jquery解析json数据详解

    最近被jquery折磨了一番,倒腾了一个jquery解析json的demo,本demo想实现从asp.net后台实例化dataSet或者dataTable数据集,将dataSet转换成json并返回给客户端,客户端用jquery getJson方法解析出来并显示在页面上。...

    一个转换DataTable 到JSON格式数据到客户端进行解析输出的源码例子

    将DataTable转换为JSON的主要目的是使客户端JavaScript能够直接使用这些数据,而无需服务器进行额外的处理。这通常涉及到以下几个步骤: 1. **序列化DataTable**:这是将.NET对象转换为JSON字符串的过程。在ASP.NET...

    将Datatable转化成json发送前台实现思路

    总结,将`DataTable`转化成JSON并发送到前端,主要是通过`JsonConvert.SerializeObject()`序列化和`jQuery.parseJSON()`反序列化两个步骤完成。这种方法适用于简单的数据传递,对于复杂的业务场景,可能需要考虑使用...

    C# DataTable json

    在标题"C# DataTable json"中提到的知识点主要是如何将C#中的`DataTable`对象转换成JSON格式,以便与使用EasyUI的前端交互。EasyUI是一个基于jQuery的UI框架,它提供了丰富的组件,如数据网格、表单、对话框等,这些...

    Jquery dataTable完整例子(分页,带文档)

    jQuery 的插件 dataTables 是一个优秀的表格插件,提供了针对表格的排序、浏览器分页、服务器分页、筛选、格式化等功能。 分页、排序、检索 Datatable与json之间数据转换,一个详细完整的例子!

    基于jQuery的强大的表格插件 dataTable

    在返回数据时,Java开发者可以将查询结果转换为JSON格式,供dataTable解析并展示在前端。 **使用步骤:** 1. **引入依赖**:在HTML文件中引入jQuery库和dataTable的相关CSS、JS文件。 2. **初始化表格**:在HTML...

    Jquery dataTable完整例子下载(取数据、分页、样式等)

    `jQuery DataTables` 是一个功能强大的JavaScript库,用于将HTML表格转换为高度交互的数据展示工具。它提供了丰富的功能,包括数据检索、排序、过滤、分页和自定义样式,使得网页上的数据管理更加便捷高效。在与`...

    jquery datatable serverside page 服务器端分页

    jQuery DataTables 是一款功能强大的JavaScript库,用于将HTML表格转化为交互式数据视图。服务器端分页(Server-side pagination)是其核心特性之一,尤其适用于处理大量数据时,能有效提高网页性能。 **1. 服务器...

    结构化_JQUERY传输_json

    本主题将深入探讨“结构化_JQUERY传输_json”,包括如何利用jQuery传递结构化数据、如何将结构化数据转换为Datatable以及如何将Datatable内的数据转换回结构化数据,并在页面上动态显示表格。 首先,我们来看jQuery...

    json获取datatable后生成table分页显示

    本篇将详细讲解如何使用jQuery通过JSON获取DataTable数据,将其转化为HTML表格,并实现分页显示。 首先,我们需要了解JSON。JSON是一种基于文本的格式,其数据结构主要包含对象(键值对)和数组。在JavaScript中,...

    jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)

    这个插件支持后台处理程序直接转换成DataTable处理,使得数据管理和交互更加高效。 首先,jsorder插件的使用需要引入必要的库文件,包括jQuery核心库、插件自身的样式表和JavaScript文件,以及可能的自定义CSS和...

    Structs 2 Action 与 JQuery Datatable 的整合

    2. **JSON数据格式化**:由于JQuery Datatable通常使用JSON数据格式来获取服务器端数据,Action需要将处理后的数据转换为JSON格式,可以通过使用Struts 2的JSON插件或自定义Result类型来实现。 3. **Ajax请求设置**...

    servlet+jquery表格数据填充

    本篇文章将详细探讨如何利用Servlet生成数据,并通过jQuery在前端页面的表格中进行数据填充。 首先,我们来了解Servlet。Servlet是Java EE平台中的一个组件,它用于扩展服务器的功能,处理来自客户端(通常是Web...

    Json+Struts2+JQuery及JQuery相关插件的例子,json架包...

    JQuery与JSON的结合,允许开发者轻松地从服务器获取JSON数据并更新页面内容,同时,JQuery还提供了一些插件,如DataTable、Select2等,这些插件能够很好地支持JSON数据的展示和操作。 在这个例子中,我们看到几个与...

Global site tag (gtag.js) - Google Analytics