// 页面加载时
/// </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\nll\"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>

  

最新文章

  1. [vivado系列]Zynq开发常用文档
  2. 【iOS】WebView加载HTML图片大小自适应与文章自动换行
  3. (转)linux获取/查看本机出口ip
  4. Revit自定义快递访问工具栏
  5. Echart 商业级数据图表
  6. Windows转到linux中,文件乱码,文件编码转换
  7. SQL Server 内存压力解决方案
  8. Jimmy Choo_百度百科
  9. [NOI 2001]炮兵阵地
  10. 通过Pdf预览Excel或者word或者Powerpoint (C#将Office转换为PDF)
  11. Spark Streaming之窗口函数和状态转换函数
  12. 计时器setInterval()
  13. cocos源码分析--SpriteBatchNode绘图原理
  14. JFreeChart 之饼图
  15. hadoop学习笔记(八):MapReduce
  16. gdb中run出现的Missing separate debuginfos, use: debuginfo-install XXX
  17. SpringBoot日记——登录与拦截器篇
  18. Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?
  19. 腾讯云-NGINX搭建静态网站
  20. RHEL7 -- 识别文件系统和设备

热门文章

  1. Oracle 触发器(一)
  2. iOS之利用runtime,避免可变数组和可变字典为nil或者数组越界导致的崩溃
  3. Spring注解配置(1)——@Autowired
  4. sass的嵌套
  5. tcp总结与简单实现
  6. 一、PHP基础-安装PHP集成环境
  7. 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)
  8. 流程控制之--if。
  9. 解决protobuf import路径的问题
  10. [原创]用python实现系统状态监测和故障转移