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

先看看图片展示的效果:

EXTJS学习系列提高篇:第十六篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--显示列表篇

1,下面把页面代码完整复制:

 


    <title>无标题页</title>
    
<link rel="Stylesheet" type="text/css" href="ExtJS/resources/css/ext-all.css" />
    
<link rel="Stylesheet" type="text/css" href="ExtJS/resources/css/xtheme-green.css" />
    
<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>
    
<style type="text/css">
    .panel_icon11 { background
-image:url(images/first.gif)}
    .center_icon { background
-image:url(images/center.png)}
    
</style>
</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:
900,
            height:
450,
            autoScroll:
true,  
            store:store,
            sm:sm,
            cm:cm,
            viewConfig:{forceFit: 
true},
            title:
'<img style="height:auto; width:auto;" src="images/first.gif" /> Ext2.2全新功能版系列之--显示列表',
            bbar:pagingBar
        });
    }
    
</script>    
    
<script type="text/javascript">
    Ext.onReady(ready);
    
</script>
    
</div>
    
</form>
</body>
</html>


2,把涉及到的后台代码贴出来供大家参考

 

using Ext;
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 
= CommonUtil.PaginationByTableName(field, asc_desc, pagesize, start, "TypeTable");
            
if (ds != null && ds.Tables[0].Rows.Count > 0)
            {
                json 
= CommonUtil.GetJsonString(ds);
                
int count = CommonUtil.GetCountByTableName("TypeTable");
                json 
= "{totalPorperty:" + count + ",root:" + json + "}";
            }
        }
        
catch (Exception ee)
        {
            
string error = ee.Message;
        }
        Response.Write(json);
    }
}

3,数据表生成语句,在提高篇第七篇里也能够找到,这里再贴出来一次

CREATE TABLE [dbo].[TypeTable](
 [ID] [
int] IDENTITY(1,1) NOT NULL,
 [PID] [
int] NULL,
 [TypeEName] [nvarchar](
50) COLLATE Chinese_PRC_CI_AS NULL,
 [TypeCName] [nvarchar](
50) COLLATE Chinese_PRC_CI_AS NULL,
 [DelFlag] [bit] NULL CONSTRAINT [DF_TypeTable_DelFlag]  DEFAULT ((
0)),
 [AddDate] [datetime] NULL CONSTRAINT [DF_TypeTable_AddDate]  DEFAULT (getdate()),
 CONSTRAINT [PK_TypeTable] PRIMARY KEY CLUSTERED 
(
 [ID] ASC
)WITH (IGNORE_DUP_KEY 
= OFF) ON [PRIMARY]
) ON [PRIMARY]

相关文章: