Client aspx code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>
<link href="js/jquery-1.10.2-ui.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-1.9.1.js" type="text/javascript"></script>
<script src="js/jquery-1.10.2-ui.js" type="text/javascript"></script>
<script src="js/grid.locale-en.js" type="text/javascript"></script>
<link href="js/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script type="text/javascript">
function aa() {
Service.DoWork(bb, cc, null);
}
function bb(result) {
alert(result);
}
function cc(result) {
alert(result);
}
function dd() {
$.ajax({
type: "POST",
url: "Service.svc/DoWork",
contentType: "application/json",
dataType: "json",
success: function(data) { alert(data.d); }
});
}
function ee() {
alert("aaaaa");
/*************/
$.ajax({
type: "POST",
url: "Service.svc/DoWork1",
contentType: "application/json",
dataType: "json",
success: function(data) {
alert(data.d);
/********/
var thegrid = jQuery("#grid");
var data1 = JSON.parse(data.d).rows;
alert(data1);
alert(data1.length);
thegrid.clearGridData();
for (var i = 0; i < data1.length; i++) {
alert(data1[i].name);
thegrid.addRowData(i + 1, data1[i]);
}
/********/
}
});
/*************/
}
$(document).ready(function() {
alert("aa");
$("#grid").jqGrid({
datatype: ee,
mtype: 'GET',
colNames: ['id', 'name'],
colModel: [
{ name: 'id', index: 'id', width: 55 },
{ name: 'name', index: 'name', width: 90 }
],
pager: '#pager',
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'id',
sortorder: 'desc',
viewrecords: true,
gridview: true,
caption: 'My first grid'
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="SCM">
<Services>
<asp:ServiceReference Path="~/Service.svc" />
</Services>
</asp:ScriptManager>
<div>
</div>
<button type="button" id="btn" onclick="aa();"></button>
<button type="button" id="Button1" onclick="dd();"></button>
<button type="button" id="Button2" onclick="ee();"></button>
<table id="grid"></table>
<div id="pager"></div>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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>
<link href="js/jquery-1.10.2-ui.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-1.9.1.js" type="text/javascript"></script>
<script src="js/jquery-1.10.2-ui.js" type="text/javascript"></script>
<script src="js/grid.locale-en.js" type="text/javascript"></script>
<link href="js/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script type="text/javascript">
function aa() {
Service.DoWork(bb, cc, null);
}
function bb(result) {
alert(result);
}
function cc(result) {
alert(result);
}
function dd() {
$.ajax({
type: "POST",
url: "Service.svc/DoWork",
contentType: "application/json",
dataType: "json",
success: function(data) { alert(data.d); }
});
}
function ee() {
alert("aaaaa");
/*************/
$.ajax({
type: "POST",
url: "Service.svc/DoWork1",
contentType: "application/json",
dataType: "json",
success: function(data) {
alert(data.d);
/********/
var thegrid = jQuery("#grid");
var data1 = JSON.parse(data.d).rows;
alert(data1);
alert(data1.length);
thegrid.clearGridData();
for (var i = 0; i < data1.length; i++) {
alert(data1[i].name);
thegrid.addRowData(i + 1, data1[i]);
}
/********/
}
});
/*************/
}
$(document).ready(function() {
alert("aa");
$("#grid").jqGrid({
datatype: ee,
mtype: 'GET',
colNames: ['id', 'name'],
colModel: [
{ name: 'id', index: 'id', width: 55 },
{ name: 'name', index: 'name', width: 90 }
],
pager: '#pager',
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'id',
sortorder: 'desc',
viewrecords: true,
gridview: true,
caption: 'My first grid'
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="SCM">
<Services>
<asp:ServiceReference Path="~/Service.svc" />
</Services>
</asp:ScriptManager>
<div>
</div>
<button type="button" id="btn" onclick="aa();"></button>
<button type="button" id="Button1" onclick="dd();"></button>
<button type="button" id="Button2" onclick="ee();"></button>
<table id="grid"></table>
<div id="pager"></div>
</form>
</body>
</html>
=======================================================
service code :
using System;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Collections;
using System.Collections.Generic;
using System.Web.Script.Serialization;
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service
{
// Add [WebGet] attribute to use HTTP GET
[OperationContract]
public string DoWork()
{
// Add your operation implementation here
return "deluxe";
}
[OperationContract]
public string DoWork1()
{
Person[] p = new Person[] { new Person(1, "aaaa"), new Person(2, "bbbb") };
List<Person> lp = new List<Person>();
lp.Add(p[0]);
lp.Add(p[1]);
lp.Add(new Person(3, "cccc"));
lp.Add(new Person(4, "dddd"));
lp.Add(new Person(5, "cccc"));
lp.Add(new Person(6, "dddd"));
lp.Add(new Person(7, "cccc"));
lp.Add(new Person(8, "dddd"));
lp.Add(new Person(9, "cccc"));
lp.Add(new Person(10, "dddd"));
PagedList pl = new PagedList(lp, 10, 2, 2);
string s = pl.ToString();
return s;
}
// Add more operations here and mark them with [OperationContract]
}
//taken from http://blog.prabir.me/?tag=/jqgrid
public class PagedList
{
IEnumerable _rows;
int _totalRecords;
int _pageIndex;
int _pageSize;
object _userData;
public PagedList(IEnumerable rows, int totalRecords, int pageIndex, int pageSize, object userData)
{
_rows = rows;
_totalRecords = totalRecords;
_pageIndex = pageIndex;
_pageSize = pageSize;
_userData = userData;
}
public PagedList(IEnumerable rows, int totalRecords, int pageIndex, int pageSize)
: this(rows, totalRecords, pageIndex, pageSize, null)
{
}
public int total { get { return (int)Math.Ceiling((decimal)_totalRecords / (decimal)_pageSize); } }
public int page { get { return _pageIndex; } }
public int records { get { return _totalRecords; } }
public IEnumerable rows { get { return _rows; } }
public object userData { get { return _userData; } }
public override string ToString()
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(this);
//return "{\"total\":\"2\",\"page\":\"2\",\"records\":\"4\",\"rows\":[{\"id\":\"1\",\"name\":\"aaaa\"},{\"id\":\"2\",\"name\":\"bbbb\"},{\"id\":\"3\",\"name\":\"cccc\"},{\"id\":\"4\",\"name\":\"dddd\"}],\"userData\":null}";
}
}
public class Person
{
public int id { get; set; }
public string name { get; set; }
public Person(int i, string s)
{
id = i;
name = s;
}
}
No comments:
Post a Comment