<connectionStrings><add name="NORTHWNDConnectionString" connectionString="Data Source=JOHN-PC\SQL8;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True"providerName="System.Data.SqlClient" /></connectionStrings>
<script type="text/javascript">$(document).ready(function () {source = {datatype: "xml",datafields: [{ name: 'CompanyName' },{ name: 'ContactName' },{ name: 'ContactTitle' },{ name: 'City' },{ name: 'Country' },{ name: 'Address' }],formatdata: function (data) {return { pagenum: data.pagenum, pagesize: data.pagesize }},record: 'Table',url: 'Default.aspx/GetCustomers'};var dataAdapter = new $.jqx.dataAdapter(source,{ contentType: 'application/json; charset=utf-8',loadError: function (jqXHR, status, error) {alert(error);},downloadComplete: function () {// update the totalrecords count.$.ajax({url: 'Default.aspx/GetTotalRowsCount',contentType: 'application/json; charset=utf-8',async: false,success: function (data) {source.totalrecords = data.d;}});}});$("#jqxgrid").jqxGrid({source: dataAdapter,pageable: true,autoheight: true,virtualmode: true,rendergridrows: function (args) {return args.data;},columns: [{ text: 'Company Name', dataField: 'CompanyName', width: 250 },{ text: 'Contact Name', dataField: 'ContactName', width: 150 },{ text: 'Contact Title', dataField: 'ContactTitle', width: 180 },{ text: 'Address', dataField: 'Address', width: 180 },{ text: 'City', dataField: 'City', width: 80 },{ text: 'Country', dataField: 'Country', width: 100 }]});});</script>
[WebMethod][ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Xml)]public static string GetCustomers(int pagenum, int pagesize){string query = "SELECT * FROM ( "+ " SELECT *, ROW_NUMBER() OVER (ORDER BY CustomerID) as row FROM Customers "+ " ) a WHERE row > " + pagenum * pagesize + " and row <= " + (pagenum + 1) * pagesize;SqlCommand cmd = new SqlCommand(query);// Populate the DataSet.DataSet data = GetData(cmd);// return the Customers table as XML.System.IO.StringWriter writer = new System.IO.StringWriter();data.Tables[0].WriteXml(writer, XmlWriteMode.WriteSchema, false);return writer.ToString();}private static DataSet GetData(SqlCommand cmd){string strConnString = ConfigurationManager.ConnectionStrings["NORTHWNDConnectionString"].ConnectionString;using (SqlConnection con = new SqlConnection(strConnString)){using (SqlDataAdapter sda = new SqlDataAdapter()){cmd.Connection = con;sda.SelectCommand = cmd;using (DataSet ds = new DataSet()){sda.Fill(ds);return ds;}}}}[WebMethod][ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]public static int GetTotalRowsCount(){string rowsNumberQuery = "SELECT Count(*) FROM Customers";SqlCommand countCmd = new SqlCommand(rowsNumberQuery);int count = GetRowsCount(countCmd);return count;}private static int GetRowsCount(SqlCommand cmd){string strConnString = ConfigurationManager.ConnectionStrings["NORTHWNDConnectionString"].ConnectionString;SqlConnection con = new SqlConnection(strConnString);cmd.Connection = con;con.Open();SqlDataReader reader = cmd.ExecuteReader();reader.Read();int rows = (int)reader[0];con.Close();return rows;}