<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; }