Ext JS GridPanel + WebService + 返回xml数据 + 批量删除

来源:互联网 发布:string转化为byte数组 编辑:程序博客网 时间:2024/06/05 17:38


Server端的代码很简单,直接返回DataSet

        [WebMethod]        public DataSet GetDataSet(string dydj)        {            DataSet ds = SqliteHelper.ExecuteDataset("select BDZMC from ATT_BDZ where DYDJ = '" + dydj + "'", null);            return ds;        }

客户端

    Ext.getDom("bookmarkList").innerHTML = "";    var cm = new Ext.grid.ColumnModel([new Ext.grid.CheckboxSelectionModel(), {        handleMouseDown: Ext.emptyFn,        header: "OID",        dataIndex: "OID",        width: 20,        sortable: true,        hidden: true //隐藏该列    },    { header: '书签名称(双击定位)', dataIndex: 'BOOKMARKNAME', sortable: true, width: 50 },{ header: '最小经度', dataIndex: 'MIN_LONGITUDE', sortable: true, width: 40, hidden: true },{ header: '最小纬度', dataIndex: 'MIN_LATITUDE', sortable: true, width: 40, hidden: true },{ header: '最大经度', dataIndex: 'MAX_LONGITUDE', sortable: true, width: 40, hidden: true },{ header: '最大纬度', dataIndex: 'MAX_LATITUDE', sortable: true, width: 40, hidden: true }    ]);    //数据源    var store = new Ext.data.Store({        url: http://192.168.1.134/DEUWebService/Service1.asmx/GetBookmark,        // Web Service 地址        reader: new Ext.data.XmlReader({            record: 'Table',            // 数据。对应于 GetHotSpotList 返回的 DataSet 中的 Table 表            id: 'OID' // 主键。        },        [            { name: 'OID' },            { name: 'BOOKMARKNAME' },            { name: 'MIN_LONGITUDE' },            { name: 'MIN_LATITUDE' },            { name: 'MAX_LONGITUDE' },            { name: 'MAX_LATITUDE' }        ]),        remoteSort: true // 服务端排序    });    // GridPanel 组件    var grid = new Ext.grid.GridPanel({        frame: true,        enableHdMenu: false,        width: 290,        height: 230,        loadMask: {            msg: '正在加载数据,请稍侯……'        },        renderTo: 'bookmarkList',        store: store,//        sm: new Ext.grid.CheckboxSelectionModel({//            header: ""//        }),        cm: cm,        viewConfig: {            forceFit: true        },        //表格行的双击事件        listeners: {            "rowdblclick": function (grid, rowIndex, e) {                grid.getSelectionModel().each(function (rec) {                   rec.get("MAX_LONGITUDE"); //获得字段的值                });            }        }    });    BOOKMARK.bookmarkGrid = grid;    store.load();
前端删除代码
    var selBookmarkRecords = Grid.getSelectionModel().getSelections();    var selIds = "";    if (selBookmarkRecords.length > 0) {        Ext.MessageBox.confirm('提示框', '您确定要进行该操作',        function (btn) {            if (btn == 'yes') {                for (var i = 0; i < selBookmarkRecords.length; i++) {                    selIds += selBookmarkRecords[i].get("OID");                    if (i < selBookmarkRecords.length - 1) selIds += ",";                }                Ext.Ajax.request({                    url: http://192.168.1.134/DEUWebService/Service1.asmx/DeleteBookmark,                    scriptTag: true,                    params: {                        delIds: selIds                    },                    success: function (response) {                                            },                    failure: function (response, opts) {                                            }                });            }        });    }    else        Ext.Msg.alert("提示", "请勾选后再点击删除!");
后端删除也非常简单

        [WebMethod]        public void DeleteHotSpot(string delIds)        {            SqliteHelper.ExecuteNonQuery("delete from CONF_3DGIS_HOTSPOT where OID in (" + delIds + ")");        }