John's profileballboy yes! It's me! 我的...PhotosBlogListsMore Tools Help

Blog


    May 04

    EXTJS利用local的json grid範例(JAVA)

                <script  type="text/javascript">   
                    <%
                    boolean flag = (request.getParameter("userid") != null && request.getParameter("userid").length() > 8);
                    boolean nameflag = (request.getParameter("username") != null && request.getParameter("username").length() >= 2);
                    Transport.dao.MainDao mainlogin = new Transport.dao.MainDao();
                    TransBean[] trans = null;
                    if (flag) {
                        trans = mainlogin.getTrans(request.getParameter("userid"));
                        //System.out.println("aaa:" + JSONObject.fromObject(trans[0]).toString());
                    } else if (nameflag) {
                    //trans=mainlogin.getBankByName(request.getParameter("username"));
                    }

    %>
        Ext.onReady(function(){
            
            Ext.QuickTips.init();
            Ext.form.Field.prototype.msgTarget = 'side';

    var colModel = new Ext.grid.ColumnModel([
        new Ext.grid.RowNumberer(),
        {header: '姓名' ,dataIndex: 'NAME' },
        {header: '身份證字號' ,dataIndex: 'IDNO' },
        {header: '異動年度' ,dataIndex: 'TRS_YY' },
        {header: '異動月份' ,dataIndex: 'TRS_MM' },
        {header: '原因' ,dataIndex: 'REASON' },
        {header: '核發天數' ,dataIndex: 'DAYS' },
        {header: '處理別' ,dataIndex: 'FLAG' },
        {header: '扣款年度' ,dataIndex: 'EFFECT_YY' },
        {header: '扣款月份' ,dataIndex: 'EFFECT_MM' }
    ]);                    
     
    var sm = new Ext.grid.CheckboxSelectionModel();
    var cm = new Ext.grid.ColumnModel([
       
        new Ext.grid.RowNumberer(),
       
        sm,
       
        {header:'姓名',dataIndex:'NAME'},
        {header:'身份證字號',dataIndex:'IDNO'},
        {header:'異動年度',dataIndex:'TRS_YY'},
        {header:'異動月份',dataIndex:'TRS_MM'},
        {header:'原因',dataIndex:'REASON',editor: new Ext.form.TextField({
            allowBlank: true, 
            maxValue: 512
        })
    },
    {header:'核發天數',dataIndex:'DAYS'},
    {header:'處理別',dataIndex:'FLAG'},
    {header:'扣款年度',dataIndex:'EFFECT_YY'},
    {header:'扣款月份',dataIndex:'EFFECT_MM'}
    ]);
    cm.defaultSortable=true;
    var data = {
        'players':[
                <%if (trans.length > 0) {
                        for (int i = 0; i < trans.length; i++) {
                    %>
                        <%=JSONObject.fromObject(trans[i]).toString()%><%=(i != trans.length - 1) ? "," : ""%>
                <%}
                    }%>  
                ]
            };
           
            var ds = new Ext.data.Store({
                proxy:new Ext.data.MemoryProxy(data),
                reader:new Ext.data.JsonReader({root:'players'},[
                    {name:'DAYS'},
                    {name:'EFFECT_MM'},
                    {name:'EFFECT_YY'},
                    {name:'FLAG'},
                    {name:'IDNO'},
                    {name:'NAME'},
                    {name:'REASON'},
                    {name:'TRS_MM'},
                    {name:'TRS_YY'}
                ])
            });
            ds.load();
           
            var grid = new Ext.grid.EditorGridPanel({
                renderTo:'hello',
                cm:cm,
                ds:ds,
                sm:sm,
                title:'異動結果',
                width:740,
                autoHeight: true,
                listeners: {
                    afteredit: function(e){

                        if (e.field != 'REASON' && e.value == ''){
                            Ext.Msg.alert('Status','錯誤更新!');
                            e.record.reject();
                        }else{
                        var conn = new Ext.data.Connection();
                           conn.request({
                            url: 'http://localhost:8084/Transport/Control?action=UPDATETRANS',
                            params: {
                                TRS_MM: e.record.TRS_MM,
                                id: e.record.id,
                                field: e.field,
                                value: e.value
                            },
                            success: function(resp,opt) {
                                Ext.Msg.alert('Status','正確更新!');
                                e.commit();
                            },
                            failure: function(resp,opt) {
                                Ext.Msg.alert('Status','錯誤更新!');
                                e.reject();
                            }
                        });
                    }
                }
            },
            viewConfig: {
                forceFit:true
            }
        });

    }
    });
                </script>