extjs gridpanel

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RouteBaseGridPanel.aspx.cs" Inherits="ExtJS_Part.RouteBaseGridPanel" %>


<!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 href="extjs/resources/ext-all.css" rel="stylesheet" type="text/css" />
    <%--<link href="extjs/resources/css/xtheme-green.css" rel="stylesheet" type="text/css" />--%>
    <link rel="stylesheet" type="text/css" href="extjs/resources/css/xtheme_part.css" />
    <script src="extjs/adapter/ext/ext-base.js" type="text/javascript"></script>


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


    <script src="extjs/ext-all-debug.js" type="text/javascript"></script>
</head>
<script type="text/javascript">
    Ext.onReady(function() {
        Ext.QuickTips.init();
        var ds = new Ext.data.GroupingStore({
            proxy: new Ext.data.HttpProxy({
            url: '/Route/RouteBaseGridPanel'
            }),
            reader: new Ext.data.JsonReader({
                root: 'data',
                totalProperty: 'totalCount'
            },
            [
            { name: 'RouteID', type: 'int' },
            { name: 'RouteName', type: 'string' },
            { name: 'FormType', type: 'string' },
            { name: 'RouteDesc', type: 'string' },
            { name: 'DelFalg', type: 'int' },
            { name: 'AutoSet', type: 'int'}]
        ),
            remoteSort: true
        });
        ds.setDefaultSort('RouteID', 'desc');
        function renderProject(value, p, record) {
            return String.format('<img border=0 src="images/botm_39.gif"  style="cursor:hand" alt="编辑"></a> &nbsp;&nbsp; <a href="ProjectDetail.aspx?ProjectNo= {0}" target="_blank"><img border=0 src="images/botm_29.gif" style="cursor:hand" alt="删除 "></a>', record.data.PROJECT_NO);
        }
        var nm = new Ext.grid.RowNumberer();
        var sm = new Ext.grid.CheckboxSelectionModel(); // add checkbox column
        var cm = new Ext.grid.ColumnModel([nm, sm,
    { id: 'RouteID', header: "路由编号", dataIndex: 'RouteID', width: 30, align: 'center' }, //width: 40,
    {header: "路由名称", dataIndex: 'RouteName', width: 50, align: 'left' }, //width: 100,
    {header: "路由描述", dataIndex: 'RouteDesc', width: 50, align: 'left' }, // width: 50,
    {header: "表當類型", dataIndex: 'FormType', width: 40, align: 'center' }, //width: 50,
    {header: "是否有效", dataIndex: 'DelFalg', width: 40, align: 'center' }, //width: 40,
    {header: "是否自動簽核", dataIndex: 'AutoSet', width: 40, align: 'center' }, //width: 40,
    {id: 'RouteID', header: "操作", dataIndex: 'RouteID', width: 70, align: 'center', renderer: renderProject, sortable: false}]); //width: 60,
        cm.defaultSortable = true;
        var gdProjects = new Ext.grid.GridPanel({
            frame: false,
            collapsible: true,
            animCollapse: false,
            layout: 'fit',
            plain: true,
            border: true,
            height: 436,
//            title: '路由信息一览表 ',
//            iconCls: 'icon-grid',
            renderTo: document.body,
            store: ds,
            cm: cm,
            sm: sm,
            trackMouseOver: true,
            loadMask: { msg: '正在加载数据,请稍侯 ……' },
            viewConfig: {
                forceFit: true,
                enableRowBody: true,
                getRowClass: function(record, rowIndex, p, ds) {
                    return 'x-grid3-row- collapsed';
                }
            },
            view: new Ext.grid.GroupingView({
                forceFit: true,
                groupTextTpl: '{text} ({[values.rs.length]}条记录)'
            }),
            bbar: new Ext.PagingToolbar({
                pageSize: 10,
                store: ds,
                displayInfo: true,
                displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记 录',
                emptyMsg: "无显示数据",
                beforePageText: "当前是第",
                afterPageText: "页,共{0}页",
                prevText: "上一页",
                nextText: "下一页",
                firstText: "首頁",
                lastText: "尾頁",
                refreshText: "刷新"
            }),
            // inline toolbars
            tbar: [{
                id: 'btnAdd',
                text: '新增',
                tooltip: '新增',
                iconCls: 'add'
                //handler: showAddPanel
            }, '-', {
                text: '查询',
                tooltip: '查询',
                iconCls: 'search'
            }, '- ', {
                text: '批量删除',
                tooltip: '删除',
                iconCls: 'remove'}]
                //handler:showDelDialog}
            });
            ds.load({ params: { start: 0, limit: 10} });
        });
</script>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>

</html>




/// <summary>
        /// 路由設定
        /// </summary>
        public void RouteBaseGridPanel()
        {
            int start = 0;
            int limit = int.Parse(Request.Form["limit"]); //或取每页记录数
            int m_start = int.Parse(Request.Form["start"]); //分页 需要limit,start是mysql里用的(或取当页开始的记录标识编号)
            if (m_start == 0)
            {
                start = 1;
            }
            else
            {
                start = m_start / limit + 1;
            }  
            string sort = Request.Form["sort"]; //或取排序方向
            string dir = Request.Form["dir"];  //或取所要排序的字段名
            //使用微軟企業庫 連接資料庫
            Database db = DatabaseFactory.CreateDatabase();
            DbCommand cmd = db.GetStoredProcCommand("QA_COMPLAIN.sp_query_routebasepage");
            db.AddInParameter(cmd, "p_formtypeid", DbType.String, "");
            db.AddInParameter(cmd, "p_pagesstart", DbType.Int32, start);
            db.AddInParameter(cmd, "p_pagesize", DbType.Int32, limit);
            db.AddOutParameter(cmd, "p_rowcount", OracleType.Int32);
            db.AddOutParameter(cmd, "p_cursor",OracleType.Cursor);
            DataSet ds = db.ExecuteDataSet(cmd);
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            int iCount = Convert.ToInt32(cmd.Parameters["p_rowcount"].Value.ToString());//所要记录数
            int PageNum = start / limit; //共有页数
            int PageSize = limit;
            RouteBase obj = null;
            List<RouteBase> list = new List<RouteBase>();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                obj = new RouteBase();
                obj.RouteID = int.Parse(dt.Rows[i]["RouteID"].ToString());
                obj.RouteName = dt.Rows[i]["RouteName"].ToString();
                obj.FormType = dt.Rows[i]["FormTypeName"].ToString();
                obj.RouteDesc = dt.Rows[i]["RouteDesc"].ToString();
                obj.DelFalg = int.Parse(dt.Rows[i]["DelFalg"].ToString());
                obj.AutoSet = int.Parse(dt.Rows[i]["AutoSet"].ToString());
                list.Add(obj);
            }
            //轉化成Json
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string JsonSource = serializer.Serialize(list);
            string strJsonSource = @"{""totalCount"":""" + iCount + "";
            strJsonSource = strJsonSource + @""",""data"":" + JsonSource + "}"; //Grid的分页区显示所有记录数增加totalCount信息
            Response.Write(strJsonSource);
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Ext.grid.feature.Grouping 插件来进行单元格合并。以下是示例代码: ``` Ext.create('Ext.grid.Panel', { title: 'My Grid Panel', store: myStore, columns: [ { text: 'Name', dataIndex: 'name', flex: 1 }, { text: 'Age', dataIndex: 'age', flex: 1 }, { text: 'Salary', dataIndex: 'salary', flex: 1 } ], features: [{ ftype: 'grouping', groupHeaderTpl: '{columnName}: {name} ({rows.length})', hideGroupedHeader: true, startCollapsed: true, groupByText: 'Group by this field' }], renderTo: Ext.getBody() }); ``` 在上述代码中,我们创建了一个包含三列的 GridPanel,并使用 Ext.grid.feature.Grouping 插件进行了单元格合并。我们使用 groupHeaderTpl 属性来指定分组的标题,hideGroupedHeader 属性来隐藏已分组的列的标题,startCollapsed 属性来指定分组初始时是否折叠,groupByText 属性来指定分组菜单项的文本。 如果您想要根据特定的列进行分组和合并,则可以使用 groupField 属性来指定要分组的列的名称。例如: ``` Ext.create('Ext.grid.Panel', { title: 'My Grid Panel', store: myStore, columns: [ { text: 'Name', dataIndex: 'name', flex: 1 }, { text: 'Age', dataIndex: 'age', flex: 1 }, { text: 'Salary', dataIndex: 'salary', flex: 1 } ], features: [{ ftype: 'grouping', groupHeaderTpl: '{columnName}: {name} ({rows.length})', hideGroupedHeader: true, startCollapsed: true, groupByText: 'Group by this field', groupField: 'age' }], renderTo: Ext.getBody() }); ``` 在上述代码中,我们将 groupField 属性设置为 'age',这意味着我们将根据 'age' 列进行分组和合并。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值