欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET之 Extjs4.0 Grid分页显示

程序员文章站 2024-01-16 22:33:10
昨天完成了 J2EE的 EXTJS  Grid分页,今天研究了下.NET下的 Extjs  Grid分页  ,   最大的区别是 &nb...
昨天完成了 J2EE的 EXTJS  Grid分页,今天研究了下.NET下的 Extjs  Grid分页  ,

 

最大的区别是   分页语句不同  ,别的都大同小异:

 

 

 

上代码:

 

search.aspx:

 

[html]  

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Search.aspx.cs" Inherits="Search" %>  

  

<!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>Search</title>  

     <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" />  

    <script type="text/javascript" src="extjs/bootstrap.js" ></script>  

    <script type="text/javascript" src="extjs/ext-all.js" ></script>  

      

      

  

    <script type="text/javascript"  >  

    //预加载  

Ext.require(  

        [  

            'Ext.grid.*',  

            'Ext.toolbar.Paging',  

            'Ext.data.*'  

         ]  

           

);  

  

Ext.onReady(  

        function(){  

            //创建Model  

            Ext.define(  

                    'User',  

                    {  

                        extend:'Ext.data.Model',  

                        fields:[  

                                {name:'id',mapping:'id'},  

                                {name:'name',mapping:'name'},  

                                {name:'date',mapping:'date'},  

                                {name:'origin',mapping:'origin'}  

                        ]  

                    }  

            )  

            //创建数据源  

            var store = Ext.create(  

                    'Ext.data.Store',  

                    {  

                        model:'User',  

                          

                        //设置分页大小  

                        pageSize:5,  

                        proxy: {  

                            type: 'ajax',  

                            url : 'PageJson.aspx',  

                            reader: {  

                                //数据格式为json  

                                type: 'json',  

                                root: 'bugs',  

                                //获取数据总数  

                                totalProperty: 'totalCount'  

                            }  

                        },  

                        autoLoad:true  

                    }  

            );  

              

            //创建grid  

            var grid = Ext.create('Ext.grid.Panel',{  

                    store:store,  

                    columns:[  

                            {text:'ID',width:120,dataIndex:'id',sortable:true},  

                             {text:'姓名',width:120,dataIndex:'name',sortable:true},  

                             {text:'性别',width:120,dataIndex:'date',sortable:true},  

                             {text:'年龄',width:120,dataIndex:'origin',sortable:true}  

                    ],  

                    height:200,   

                    width:480,   

                    x:20,   

                    y:40,   

                    title: 'ExtJS4 Grid分页查询示例示例',   

                    renderTo: 'grid',   

                     

                    //分页功能  

                    bbar: Ext.create('Ext.PagingToolbar', {   

                                    store: store,   

                                    displayInfo: true,   

                                    displayMsg: '显示 {0} - {1} 条,共计 {2} 条',   

                                    emptyMsg: "没有数据"   

                          }  

                    )   

                }  

            )  

            //store.loadPage(1);   

              store.load({ params: { start: 0, limit: 5} });  

  

        }  

)  

  

  

  

    </script>  

</head>  

<body>  

    <form id="form1" runat="server">  

    <p id="grid">  

      

    </p>  

    </form>  

</body>  

</html>  

 

 

后台代码:

 

search.aspx.cs:

 

[csharp] 

using System;  

using System.Data;  

using System.Configuration;  

using System.Collections;  

using System.Web;  

using System.Web.Security;  

using System.Web.UI;  

using System.Web.UI.WebControls;  

using System.Web.UI.WebControls.WebParts;  

using System.Web.UI.HtmlControls;  

using System.Data.SqlClient;  

using System.Text;  

  

public partial class PageJson : System.Web.UI.Page  

{  

    int total = 0;  

    protected void Page_Load(object sender, EventArgs e)  

    {  

        int start =Convert.ToInt32( Request.Params["start"]);  

        int limit =Convert.ToInt32( Request.Params["limit"]);  

  

        jsData(start, limit);  

    }  

  

    public void jsData(int start, int limit)  

    {  

  

        SqlConnection conn = new SqlConnection("server=localhost;database=Extjs;uid=sa;pwd=1234");  

  

        //分页查询语句    

  

        string sql = " SELECT TOP " + limit + " * FROM search WHERE (ID NOT IN (SELECT TOP " + start + " id FROM search ORDER BY id))ORDER BY ID";  

  

  

        SqlCommand cm = new SqlCommand(sql, conn);  

        DataTable dt = new DataTable();  

        SqlDataAdapter da = new SqlDataAdapter();  

  

        da.SelectCommand = cm;  

        conn.Open();  

        cm.ExecuteNonQuery();  

        da.Fill(dt);  

        conn.Close();  

        Response.Write(CreateJsonParameters(dt).ToString());  

         

    }  

  

    //计算总数  

  

    public void totalcount()  

    {  

        SqlConnection conn = new SqlConnection("server=localhost;database=Extjs;uid=sa;pwd=1234");  

  

  

        string sql = "select count(*) as total from search";  

  

        SqlDataAdapter da = new SqlDataAdapter(sql, conn);  

  

        DataSet ds = new DataSet();  

        da.Fill(ds, "table");  

  

        total = Convert.ToInt32(ds.Tables[0].Rows[0]["total"].ToString());  

  

    }  

    public string CreateJsonParameters(DataTable dt)  

    {  

        totalcount();//计算总数  

  

        StringBuilder JsonString = new StringBuilder();  

        //Exception Handling          

        if (dt != null && dt.Rows.Count > 0)  

        {  

  

            JsonString.Append("{totalCount:" + total + ",bugs:[ ");  

            for (int i = 0; i < dt.Rows.Count; i++)  

            {  

                JsonString.Append("{ ");  

                for (int j = 0; j < dt.Columns.Count; j++)  

                {  

                    if (j < dt.Columns.Count - 1)  

                    {  

                        JsonString.Append(dt.Columns[j].ColumnName.ToString() + ":" + "\"" + dt.Rows[i][j].ToString() + "\",");  

                    }  

                    else if (j == dt.Columns.Count - 1)  

                    {  

                        JsonString.Append(dt.Columns[j].ColumnName.ToString() + ":" + "\"" + dt.Rows[i][j].ToString() + "\"");  

                    }  

                }  

  

                if (i == dt.Rows.Count - 1)  

                {  

                    JsonString.Append("} ");  

                }  

                else  

                {  

                    JsonString.Append("}, ");  

                }  

            }  

            JsonString.Append("]}");  

            return JsonString.ToString();  

        }  

        else  

        {  

            return null;  

        }  

    }  

  

}  

 

 

 

截图:

.NET之 Extjs4.0 Grid分页显示

 

 

 

 

[csharp]