天天看点

ext2.2打造全新功能grid系列--显示列表篇(十)

在这个显示篇里,简单的从后台绑定数据,包括分页和刷新的功能.

源代码下载

先看看图片展示的效果:

ext2.2打造全新功能grid系列--显示列表篇(十)

Ext实现

[复制到剪贴板] CODE: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="gridShow.aspx.cs" Inherits="gridShow" %>

<!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 rel="Stylesheet" type="text/css" href="ExtJS/resources/css/ext-all.css" target="_blank" rel="external nofollow" />

    <link rel="Stylesheet" type="text/css" href="ExtJS/resources/css/xtheme-green.css" target="_blank" rel="external nofollow" />

    <script type="text/javascript" src="ExtJS/adapter/ext/ext-base.js"></script>

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

    <script type="text/javascript" src="ExtJS/ext-lang-zh_CN.js"></script>

</head>

<body>

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

    <div>

    <script type="text/javascript">   

    function ready()

    {

        var url = "jsonGrid.aspx?Param=select";

        var sm = new Ext.grid.CheckboxSelectionModel();

        var cm = new Ext.grid.ColumnModel

        ([       

            sm,new Ext.grid.RowNumberer({header:"编号",width:50}),

            {header:"编号",dataIndex:"ID",width:10,hidden:true},

            {header:"标题",dataIndex:"TypeCName",width:100,editor:new Ext.form.TextField()},

            {header:"英文名称",dataIndex:"TypeEName",width:100,editor:new Ext.form.TextField()},

            {header:"状态",dataIndex:"DelFlag",width:100,renderer:function(value){if(value==false) {return "显示";} else {return "隐藏";}}},

            {header:"添加日期",dataIndex:"AddDate",width:100,renderer:Ext.util.Format.dateRenderer('Y年m月d日')}

        ]);

        cm.defaultSortable = true;

        var fields =

            [

                {name:"ID"},

                {name:"TypeCName"},

                {name:"TypeEName"},

                {name:"DelFlag"},

                {name:"AddDate"}

          ];

        var store = new Ext.data.Store

        ({

            proxy:new Ext.data.HttpProxy({url:url}),

            reader:new Ext.data.JsonReader({totalProperty:"totalPorperty",root:"root",fields:fields})

        });

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

        var pagingBar = new Ext.PagingToolbar

        ({

            displayInfo:true,emptyMsg:"没有数据显示",displayMsg:"显示从{0}条数据到{1}条数据,共{2}条数据",

            store:store,

            pageSize:15

        });

        var grid = new Ext.grid.GridPanel

        ({

            id:"MenuGridPanel",

            renderTo:document.body,

            layout:"fit",

            frame:true,

            border:true,

            width:600,

            height:450,

            autoScroll:true, 

            store:store,

            sm:sm,

            cm:cm,

            viewConfig:{forceFit: true},

            title:'Ext2.2全新功能版系列之--显示列表',

            bbar:pagingBar

        });

    }

    </script>   

    <script type="text/javascript">

    Ext.onReady(ready);

    </script>

    </div>

    </form>

</body>

</html>

后台代码实现

[复制到剪贴板] CODE: using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Collections.Generic;

using Newtonsoft.Json;

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

{

    protected void Page_Load(object sender, EventArgs e)

    {

        #region 分页

        int pagesize = 20;

        int start = 1;

        string field, asc_desc;

        if (string.IsNullOrEmpty(Request["sort"]))

        {

            field = "ID";

            asc_desc = "desc";

        }

        else

        {

            field = Request["sort"];

            asc_desc = Request["dir"];

        }

        if (!string.IsNullOrEmpty(Request["limit"]))

        {

            pagesize = int.Parse(Request["limit"]);

            start = int.Parse(Request["start"]);

        }

        start = start / pagesize;

        start += 1;

        #endregion

        string param = Request["Param"];

        switch (param)

        {

            case "select":

                Select(field, asc_desc, pagesize, start);

                break;

            case "search":

                break;

            default:

                break;

        }

    }

    void Select(string field, string asc_desc, int pagesize, int start)

    {

        string json = "";

        try

        {

            DataSet ds = ExtUtil.PaginationByTableName(field, asc_desc, pagesize, start, "TypeTable");

            if (ds != null && ds.Tables[0].Rows.Count > 0)

            {

                json = ExtUtil.GetJsonString(ds);

                int count = ExtUtil.GetCountByTableName("TypeTable");

                json = "{totalPorperty:" + count + ",root:" + json + "}";

            }

        }

        catch (Exception ee)

        {

            string error = ee.Message;

        }

        Response.Write(json);

    }

}

其它部分详见源代码下载文件

源代码下载

出处:http://goyangtao123.blog.163.com/blog/static/482929212008113113015180/