【高分求解】easyUI绑定SQL数据库问题

redjump 2017-06-06 09:57:43
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="EasyUI_test.jquery_easyui.demo.datagrid.WebForm3" %>

<!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>
<script src="../../jquery.min.js" type="text/javascript"></script>
<script src="../../jquery.easyui.min.js" type="text/javascript"></script>
<link href="../demo.css" rel="stylesheet" type="text/css" />
<link href="../../themes/icon.css" rel="stylesheet" type="text/css" />
<link href="../../themes/default/easyui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(function () {
$('#tdd').datagrid({
title: '物料管理',
width: 1000,
url: "Handler1.ashx", //接收一般处理程序返回来的json数据
method: 'get',
columns: [[
{ field: 'id', title: 'id', width: 100 }, //field后面就改为你自己的数据表字段,然后可以调整宽度什么的
{field: 'item', title: '物料', width: 100, align: 'right' },
{ field: 'dsca', title: '名称', width: 100, align: 'left' }
]],
pagination: true,
pageSize: 5,
pageList: [5, 10, 15]
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table id="tdd">
</table>
</div>
</form>
</body>
</html>


Handler1.ashx:
using System;  
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Text;
using System.Data.SqlClient;
using Newtonsoft.Json;

namespace EasyUI_test.jquery_easyui.demo.datagrid
{
/// <summary>
/// GetDataFormSql 的摘要说明
/// </summary>
public class GetDataFormSql : IHttpHandler
{

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

int page = 1, rows = 10;

//EasyUI自带的两个参数rows与page ,表示当前页与行数
if (context.Request.QueryString["rows"] != null)
{
rows = int.Parse(context.Request.QueryString["rows"].ToString().Trim());
}
if (context.Request.QueryString["page"] != null)
{
page = int.Parse(context.Request.QueryString["page"].ToString().Trim());
}

//查询分页 stratIndex endIndex
int stratIndex, endIndex;
stratIndex = (page - 1) * rows + 1;
endIndex = page * rows;

//查询数据库
SqlHelper sqlhelper = new SqlHelper();
//获取查询数据的行数
int count = sqlhelper.EUGetRecordCount();
//封装数据到dataset
DataSet ds = sqlhelper.GetListByPage(stratIndex, endIndex);
//将dataset转化为Json格式
string strToJon = ToJson.DatasetJson(ds, count);
context.Response.Write(strToJon);
context.Response.End();
}

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

public class SqlHelper
{
protected static readonly string conStr = "uid=sa;pwd=123456;database=kb;server=localhost;";

/// <summary>
/// 将数据填充到dataset
/// </summary>
/// <param name="sqlcon">查询语句</param>
/// <returns>返回一个dataset</returns>
public DataSet Query(string sqlcon)
{
using (SqlConnection conn = new SqlConnection(conStr))
{
DataSet ds = new DataSet();
try
{
conn.Open();
SqlDataAdapter dapter = new SqlDataAdapter(sqlcon, conn);
dapter.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}

public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
/// <summary>
///
/// </summary>
/// <param name="strWhere"></param>
/// <param name="sqltable"></param>
/// <returns></returns>
public int EUGetRecordCount()
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(1) FROM t_item ");
object obj = GetSingle(strSql.ToString());
if (obj == null)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}
/// <summary>
/// 查询分页数据,封装到dataset
/// </summary>
/// <param name="startIndex"></param>
/// <param name="endIndex"></param>
/// <returns></returns>
public DataSet GetListByPage(int startIndex, int endIndex)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
strSql.Append("order by T.ID asc");
strSql.Append(")AS Row, T.* from t_item " + " T ");
strSql.Append(" ) TT");
strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
return Query(strSql.ToString());
}
}


public class ToJson
{


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

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("\",");
}
if (dt.Columns.Count > 0)
{
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
}
jsonBuilder.Append("},");
}
if (dt.Rows.Count > 0)
{
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
}

return jsonBuilder.ToString();
}
public static string DatasetJson(DataSet ds, int total = -1)
{
StringBuilder json = new StringBuilder();

foreach (DataTable dt in ds.Tables)
{
json.Append("{\"total\":");
if (total == -1)
{
json.Append(dt.Rows.Count);
}
else
{
json.Append(total);
}
json.Append(",\"rows\":[");
json.Append(DataTable2Json(dt));
json.Append("]}");
} return json.ToString();
}
}
}


但是结果还是空白


我已经快要崩溃了,求解答
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
redjump 2017-06-06
  • 打赏
  • 举报
回复
引用 楼主 redjump 的回复:
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="EasyUI_test.jquery_easyui.demo.datagrid.WebForm3" %>

<!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>
    <script src="../../jquery.min.js" type="text/javascript"></script>
    <script src="../../jquery.easyui.min.js" type="text/javascript"></script>
    <link href="../demo.css" rel="stylesheet" type="text/css" />
    <link href="../../themes/icon.css" rel="stylesheet" type="text/css" />
    <link href="../../themes/default/easyui.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript">
            $(function () {
                $('#tdd').datagrid({
                    title: '物料管理',
                    width: 1000,
                    url: "Handler1.ashx", //接收一般处理程序返回来的json数据  
                    method: 'get',
                    columns: [[
                { field: 'id', title: 'id', width: 100 }, //field后面就改为你自己的数据表字段,然后可以调整宽度什么的  
                {field: 'item', title: '物料', width: 100, align: 'right' },
                { field: 'dsca', title: '名称', width: 100, align: 'left' }
            ]],
                    pagination: true,
                    pageSize: 5,
                    pageList: [5, 10, 15]
                });
            }); 
    </script>  
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <table id="tdd">  
    </table>  
    </div>
    </form>
</body>
</html>
Handler1.ashx:
using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Data;
using System.Text;
using System.Data.SqlClient;
using Newtonsoft.Json;

namespace EasyUI_test.jquery_easyui.demo.datagrid
{
    /// <summary>  
    /// GetDataFormSql 的摘要说明  
    /// </summary>  
    public class GetDataFormSql : IHttpHandler
    {

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

            int page = 1, rows = 10;

            //EasyUI自带的两个参数rows与page ,表示当前页与行数  
            if (context.Request.QueryString["rows"] != null)
            {
                rows = int.Parse(context.Request.QueryString["rows"].ToString().Trim());
            }
            if (context.Request.QueryString["page"] != null)
            {
                page = int.Parse(context.Request.QueryString["page"].ToString().Trim());
            }

            //查询分页 stratIndex endIndex  
            int stratIndex, endIndex;
            stratIndex = (page - 1) * rows + 1;
            endIndex = page * rows;

            //查询数据库  
            SqlHelper sqlhelper = new SqlHelper();
            //获取查询数据的行数  
            int count = sqlhelper.EUGetRecordCount();
            //封装数据到dataset  
            DataSet ds = sqlhelper.GetListByPage(stratIndex, endIndex);
            //将dataset转化为Json格式  
            string strToJon = ToJson.DatasetJson(ds, count);
            context.Response.Write(strToJon);
            context.Response.End();
        }

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

    public class SqlHelper
    {
        protected static readonly string conStr = "uid=sa;pwd=123456;database=kb;server=localhost;";

        /// <summary>  
        /// 将数据填充到dataset  
        /// </summary>  
        /// <param name="sqlcon">查询语句</param>  
        /// <returns>返回一个dataset</returns>  
        public DataSet Query(string sqlcon)
        {
            using (SqlConnection conn = new SqlConnection(conStr))
            {
                DataSet ds = new DataSet();
                try
                {
                    conn.Open();
                    SqlDataAdapter dapter = new SqlDataAdapter(sqlcon, conn);
                    dapter.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
        }

        public static object GetSingle(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(conStr))
            {
                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        object obj = cmd.ExecuteScalar();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            return null;
                        }
                        else
                        {
                            return obj;
                        }
                    }
                    catch (System.Data.SqlClient.SqlException e)
                    {
                        connection.Close();
                        throw e;
                    }
                }
            }
        }
        /// <summary>  
        ///   
        /// </summary>  
        /// <param name="strWhere"></param>  
        /// <param name="sqltable"></param>  
        /// <returns></returns>  
        public int EUGetRecordCount()
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) FROM t_item ");
            object obj = GetSingle(strSql.ToString());
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt32(obj);
            }
        }
        /// <summary>  
        /// 查询分页数据,封装到dataset  
        /// </summary>  
        /// <param name="startIndex"></param>  
        /// <param name="endIndex"></param>  
        /// <returns></returns>  
        public DataSet GetListByPage(int startIndex, int endIndex)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("SELECT * FROM ( ");
            strSql.Append(" SELECT ROW_NUMBER() OVER (");
            strSql.Append("order by T.ID  asc");
            strSql.Append(")AS Row, T.*  from t_item " + " T ");
            strSql.Append(" ) TT");
            strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
            return Query(strSql.ToString());
        }
    }


    public class ToJson
    {


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

            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("\",");
                }
                if (dt.Columns.Count > 0)
                {
                    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                }
                jsonBuilder.Append("},");
            }
            if (dt.Rows.Count > 0)
            {
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
            }

            return jsonBuilder.ToString();
        }  
        public static string DatasetJson(DataSet ds, int total = -1)
        {
            StringBuilder json = new StringBuilder();

            foreach (DataTable dt in ds.Tables)
            {
                json.Append("{\"total\":");
                if (total == -1)
                {
                    json.Append(dt.Rows.Count);
                }
                else
                {
                    json.Append(total);
                }
                json.Append(",\"rows\":[");
                json.Append(DataTable2Json(dt));
                json.Append("]}");
            } return json.ToString();
        }
    }
}
但是结果还是空白 我已经快要崩溃了,求解答
引用 1 楼 ducker3590 的回复:
浏览器f12 看下network里的请求有没有问题(如果没有报错看下数据格式有没有问题) 还有console里有没有js报错
Network里提示未能创建类型
引用 1 楼 ducker3590 的回复:
浏览器f12 看下network里的请求有没有问题(如果没有报错看下数据格式有没有问题) 还有console里有没有js报错
我已经解决了 参考http://bbs.csdn.net/topics/391045367 我把ashx.cs代码放到ashx里就可以了 谢谢你的提醒
  • 打赏
  • 举报
回复
贴出你的 http 调试信息,看看 Response 消息到底是什么?
正怒月神 版主 2017-06-06
  • 打赏
  • 举报
回复
结果是空白,那么先调试你的sql语句, 看看查询出来的数据有没有。 然后在看看返回的json。前台alert看看是否绑定json的时候出问题了,比如列名打错,或者集合包装的问题
csdnFUCKINGSUCKS 2017-06-06
  • 打赏
  • 举报
回复
浏览器f12 看下network里的请求有没有问题(如果没有报错看下数据格式有没有问题) 还有console里有没有js报错

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧