zoukankan      html  css  js  c++  java
  • mui.ajax()和asp.net sql服务器数据交互【2】json数组和封装

    今天没有做循环创建显示:可以参考张鑫旭的文章:《基于HTML模板和JSON数据的JavaScript交互》

    1、ashx页面代码

    //下面的封装一般框架底层都是写好的:连接 数据库和获取DataTabel

    public SqlConnection getcon()
    {
    //连接本地数据库 server=localhost
    string M_str_sqlcon = "Server=(local);Initial Catalog=userlogin ;Uid=sa ;Pwd=sa ;";
    SqlConnection myCon = new SqlConnection(M_str_sqlcon);
    return myCon;
    }

    DataTable mytable = new DataTable();

    public DataTable gettable(string M_str_sqlstr)
    {
    SqlConnection sqlcon = this.getcon();
    sqlcon.Open();
    SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon);
    sqlda.Fill(mytable);
    sqlda.Dispose();
    sqlcon.Close();
    return mytable;
    }

    /// <summary> 
    /// dataTable转换成Json格式 
    /// </summary> 
    /// <param name="dt"></param> 
    /// <returns></returns> 
    public static string DataTableToJson(DataTable dt)
    {
    StringBuilder jsonBuilder = new StringBuilder();

    jsonBuilder.Append(dt.TableName);
    jsonBuilder.Append("[");
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    jsonBuilder.Append("{");
    for (int j = 0; j < dt.Columns.Count; j++)
    {
    jsonBuilder.Append(""");
    jsonBuilder.Append(dt.Columns[j].ColumnName);
    jsonBuilder.Append("":"");
    jsonBuilder.Append(dt.Rows[i][j].ToString());
    jsonBuilder.Append("",");
    }
    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
    jsonBuilder.Append("},");
    }
    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
    jsonBuilder.Append("]");

    return jsonBuilder.ToString();
    }

    public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "application/json";
    string name = context.Request.Params["name"];
    string strsql = "select * from login where username like '%" + name +"%'";
    DataTable dt = gettable(strsql);
    if (dt.Rows.Count > 0 && dt != null)
    {
    string res = DataTableToJson(dt).ToString();
    context.Response.Write(res);
    }

    }
    public bool IsReusable {
    get {
    return false;
    }
    }

    2、前端页面代码

    <body>
    <div class="mui-input-row">
    <label>账号:</label>
    <input id="name" type="text" placeholder="请输入账号">
    </div>
    <button id="btnLogin" type="button" class="mui-btn mui-btn-blue mui-btn-block">点击获取密码</button>

    <div id="div">
    这里显示从服务器获取到的数据

    </div>
    <script src="js/mui.min.js"></script>
    <script type="text/javascript">
    mui.init();
    mui.ready(function() {
    var btnLogin = document.getElementById("btnLogin");
    var names = document.getElementById("name");
    btnLogin.onclick = function() {
    var url = "http://localhost/myStudy/APP/Handler.ashx";
    mui.post(url, {
    name: names.value,
    }, function(data) {
    //服务器返回响应,根据响应结果,分析是否登录成功;
    var jsonstr = JSON.stringify(data); //将JavaScript值转化为json字符串
    var jsonobj = JSON.parse(jsonstr); //将json字符串转化为JavaScript对象
    var divinner = document.getElementById("div");
    divinner.innerHTML = jsonobj[jsonobj.length-1].title;
    }, 'json');
    };
    });
    </script>
    </body>

    仅此杂文,留待后用。
  • 相关阅读:
    C++11学习笔记
    孙鑫MFC学习笔记20:Hook编程
    孙鑫MFC学习笔记19:动态链接库
    孙鑫MFC学习笔记18:ActiveX
    孙鑫MFC学习笔记17:进程间通信
    孙鑫MFC学习笔记16:异步套接字
    孙鑫MFC学习笔记:15多线程
    ionic2 使用slides制作滑动效果的类型选择栏
    JavaScript简明教程之Node.js
    ionic2实战-使用Chart.js
  • 原文地址:https://www.cnblogs.com/wow1314/p/7065532.html
Copyright © 2011-2022 走看看