62,046
社区成员
发帖
与我相关
我的任务
分享
<%@ WebHandler Language="C#" Class="ashx" %>
using System;
using System.Data;
using System.Web;
using System.Text;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using Newtonsoft.Json;
using JqueryGrid;
public class ashx : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
if ("" != null) //可以作为权限判断
{
int page = 1;
int rp = 10;
string sortname = "id";
string sortorder = "asc";
string where = "1=1";
//page params
if (!string.IsNullOrEmpty(context.Request["page"]))
page = int.Parse(context.Request["page"].ToString());
if (!string.IsNullOrEmpty(context.Request["rp"]))
rp = int.Parse(context.Request["rp"].ToString());
//sort params
if (!string.IsNullOrEmpty(context.Request["sortname"]))
sortname = context.Request["sortname"].ToString();
if (!string.IsNullOrEmpty(context.Request["sortorder"]))
sortorder = context.Request["sortorder"].ToString();
//filter params
/*
if (context.Request["id"] != null && context.Request["id"].ToString() != "")
where += " and id='" + context.Request["id"].ToString() + "'";
if (context.Request["title"] != null && context.Request["title"].ToString() != "")
where += " and title='" + context.Request["title"].ToString() + "'";
if (context.Request["keyword"] != null && context.Request["keyword"].ToString() != "")
where += " and keyword='" + context.Request["keyword"].ToString() + "'";
if (context.Request["url"] != null && context.Request["url"].ToString() != "")
where += " and url='" + context.Request["url"].ToString() + "'";
if (context.Request["description"] != null && context.Request["description"].ToString() != "")
where += " and description='" + context.Request["description"].ToString() + "'";
*/
DBHelper dbhelper = new DBHelper();
string sql = "select * from links";
DataSet ds = dbhelper.GetDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
string sort = " " + sortname + " " + sortorder; //排序表达式
DataRow[] rowArray = ds.Tables[0].Select(where, sort);
if (rowArray.Length != 0)
{
int pages = (rowArray.Length % rp != 0) ? (rowArray.Length / rp + 1) : (rowArray.Length / rp);
string[] jsonArr = new string[pages];
for (int i = 1; i <= pages; i++)
{
StringBuilder sb = new StringBuilder();
sb.Append("{\n");
sb.Append("page: " + i.ToString() + ",\n");
sb.Append("pages: " + pages + ",\n");
sb.Append("total: " + rowArray.Length + ",\n");
sb.Append("rows: [");
bool rc = false;
for (int j = (i - 1) * rp; j < i * rp; j++)
{
if (j < rowArray.Length)
{
DataRow dr = rowArray[j];
if (rc)
sb.Append(",");
sb.Append("\n{");
sb.Append("id:'" + dr["id"].ToString() + "',");
sb.Append("cell:['" + dr["id"].ToString() + "'");
sb.Append(",'" + dr["title"].ToString() + "'");
sb.Append(",'" + dr["keyword"].ToString() + "'");
if (dr["id"].ToString() != "")
sb.Append(",'" + dr["url"].ToString() + "'");
else
sb.Append(",' '");
sb.Append(",'" + dr["description"].ToString() + "']");
sb.Append("}");
rc = true;
}
else
break;
}
sb.Append("],\n");
sb.Append(BuildParams(ds));
sb.Append("}");
jsonArr[i - 1] = sb.ToString();
}
context.Response.ContentType = "text/plain";
context.Response.Write(JsonConvert.DeserializeObject(jsonArr[page - 1])); //格式化成JSON数据输出
}
else
{
StringBuilder sb1 = new StringBuilder();
sb1.Append("{\n page:1,\ntotal:0,\npages:1,rows:'',");
sb1.Append(BuildParams(ds));
sb1.Append("}");
context.Response.ContentType = "text/plain";
context.Response.Write(JsonConvert.DeserializeObject(sb1.ToString()));
}
}
else
{
context.Response.ContentType = "text/plain";
context.Response.Write(JsonConvert.DeserializeObject("{\n page:1,\ntotal:0,pages:1,rows:'',cols:''}"));
}
}
else
{
context.Response.ContentType = "text/plain";
context.Response.Write("-1"); //输出-1,向JQUERY插件提示用户没有权限
}
}
public bool IsReusable
{
get
{
return false;
}
}
/// <summary>
/// 绑定抬头行和过滤行数据
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
private string BuildParams(DataSet ds)
{
StringBuilder sb = new StringBuilder();
sb.Append("cols: [\n");
sb.Append("{display:'ID',name:'id',className:'IDDiv',sortable:true},\n");
sb.Append("{display:'Title',name:'title',className:'titleDiv',sortable:true},\n");
sb.Append("{display:'Keywords',name:'keyword',className:'kewordDiv',sortable:true},\n");
sb.Append("{display:'Url',name:'url',className:'urlDiv',sortable:true},\n");
sb.Append("{display:'Description',name:'description',className:'descriptionDiv',sortable:true},\n");
sb.Append("],\n");
sb.Append("id:[");
sb.Append(Filter.SelectDistinct(ds.Tables[0], "id"));
sb.Append("],\n");
sb.Append("title:[");
// sb.Append(Filter.SelectDistinct(ds.Tables[0], "title"));
sb.Append("],\n");
sb.Append("keyword:[");
//sb.Append(Filter.SelectDistinct(ds.Tables[0], "keyword"));
sb.Append("],\n");
sb.Append("url:[");
// sb.Append(Filter.SelectDistinct(ds.Tables[0], "url"));
sb.Append("],\n");
sb.Append("description:[");
// sb.Append(Filter.SelectDistinct(ds.Tables[0], "description"));
sb.Append("]\n");
return sb.ToString();
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="TestPage_Default" %>
<!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>
<style type="text/css">
body
{
font-size: 12px;
font-family: Arial;
}
</style>
<link href="../Styles/jqGrid/jquery.css" rel="stylesheet" type="text/css" />
<script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="../Scripts/AxioGrid.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#jqueryData").AxioGrid({
method:"Get",
url: "/Ashx/ashx.ashx",
itembuttons: [{ name: "Edit", displayname: "Edit", className: "editButton", bthclass: "bthclass", bthname: "Edit", onclick: editItems }, { name: "Delete", displayname: "Del", className: "deleteButton", bthclass: "bthclass", bthname: "Delete", onclick: editItems}],
rp: 10//,
//filterable: true,
//filter: [{ name: "id", value: "" }, { name: "title", value: "" }, { name: "keyword", value: "" }, { name: "url", value: "" }, { name: "description", value: ""}]
});
});
function editItems(com, id, p) {
debugger
if (com == "Edit") {
alert(id);
}
if (com == "Delete") {
var r = confirm("Would you delete the user of the user code is \"" + id + "\"");
if (r) {
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="jqueryData"></div>
</form>
</body>
</html>