dojo.require("dojox.grid.EnhancedGrid"); dojo.require("dojox.grid.enhanced.plugins.IndirectSelection"); dojo.require("dojo.data.ItemFileWriteStore"); dojo.require("dojo.parser"); dojo.declare("ManuPlan",null,{ dataGrid : null, store : null, // 布局 layout:null, constructor :function(){ // this.store=new dojo.data.ItemFileWriteStore( // { // url : "manuPlan!doGetManuPlanList.action?manuPlan.pageNumber=1&manuPlan.pagesize=10", // clearOnClose : true, // urlPreventCache : true // }); this.layout=[ { defaultCell : { width : 8, editable : false, type : dojox.grid.cells._Widget, styles : 'text-align: left;' }, rows : [ { name : "序号", field : "rowNumber" }, { name : "日期", field : "date", editable : true, type: dojox.grid.cells.DateTextBox, formatter:this.formatDate, constraint:{datePattern:"yyyy-MM-dd",selector: "date"} }, { name : "审核", field : "checkerId", formatter : this.formatCheckInfo }, { name : "指示编号(批号)", field : "number" }, { name : "半成品名称", field : "itemName" }, { name : "助记码", field : "itemHelpCode" }, { name : "数量", field : "quantity" }, { name : "单位", field : "UnitName" }, { name : "备注", field : "note" } ] } ]; this.dataGrid=new dojox.grid.EnhancedGrid( { id : "dataGrid", // store : this.store, structure : this.layout, rowSelector : "20px", autoHeight : true, escapeHTMLInData : false, canSort : this.canSort, // onCellFocus:function(inCell, inRowIndex){ // if(inCell.field=="itemName"){ //// alert(inCell); // console.log("inRowIndex="+inRowIndex+",inCell.index="+inCell.index); // dijit.byId("addDlg").show(); // } // }, style : "width: auto;height: 160px;", plugins : { indirectSelection : { headerSelector : true, name : "Selection", width : "60px", styles : "text-align: center;" } } }); }, // 格式化 formatCheckInfo : function(inDatum, rowIndex) { // var value = grid.store.getValue(grid.getItem(rowIndex), name); return inDatum ? "Y" : "N"; }, // 格式化日期 formatDate : function(inDatum, rowIndex) { if (dojo.isString(inDatum)) { return inDatum } else { return dojo.date.locale.format(inDatum, this.constraint); } }, // 指定排序列 canSort : function(colIndex, field) { return false; }, // 获取存储器 getStore:function(){ return this.store; }, // 修改 onSet : function(item, attribute, oldValue, newValue) { var parameter = { "manuPlan.Id" : this.store.getValue(item, "mpId"), "manuPlan.manuPlanEntry.id" : this.store.getValue(item,"mpeId"), "manuPlan.date" : dojo.date.locale.format(this.store.getValue(item, "date"), {datePattern:"yyyy-MM-dd",selector: "date"}), "manuPlan.number" : this.store.getValue(item, "number") }; // 异步修改数据 var self=this; dojo.xhrPost( { url : "manuPlan!doUpdateManuPlan.action", handleAs : "json", content : parameter, load : function(response) { if (response.id != "0") { self.store.save(); self.onComplete(); } else { alert(response.message); } }, error : function(error) { alert(error); self.onError(error); } }); }, // 添加 onNew : function(item) { }, onDelete:function(item){ }, // 关联事件 connectEvt: function() { dojo.connect(this.store, "onSet", this,this.onSet); dojo.connect(this.store, "onNew", this,this.onNew); dojo.connect(this.store, "onDelete",this, this.onDelete); dojo.forEach(["onCellDblClick"], function(ev){ dojo.connect(this.dataGrid, ev, this,function(e){ // console.log(this); // console.log(e); // alert(e.cellIndex); // alert(e.rowIndex); if(e.cellIndex==5){ console.log(this.dataGrid.getItem(e.rowIndex)); dijit.byId("addDlg").show(); } }); },this); }, // 创建表格 getDataGrid:function(){ return this.dataGrid; }, // 取得分页信息 getPagination : function(parameter) { var parameter = parameter || { "manuPlan.pageNumber" : 1, "manuPlan.pagesize" : 10 }; dojo.xhrPost( { url : "manuPlan!doGetManuPlanPagination.action", content : parameter, handleAs : "json", load : function(response) { dojo.byId("pagination_Panel").innerHTML = response; }, error : function(error) { alert("获取分页信息时出错 : " + error); dojo.byId("pagination_Panel").innerHTML = ""; } }); }, // 获取数据 getDataList:function(pageNumber, pagesize) { var parameter = { "manuPlan.pageNumber" : pageNumber || 1, "manuPlan.pagesize" : pagesize || 10 }; // this.store = new dojo.data.ItemFileWriteStore( { // url : "manuPlan!doGetManuPlanList.action?" // + dojo.objectToQuery(parameter) // }); this.dataGrid.setStore(null); this.dataGrid.showMessage(this.dataGrid.loadingMessage); var self=this; dojo.xhrPost({ self:self, url: "manuPlan!doGetManuPlanList.action", content: parameter, handleAs : "json", load : function(response) { console.log(self); if(response.id=="0"){ self.dataGrid.showMessage(self.dataGrid.errorMessage+response.message); }else{ self.store=new dojo.data.ItemFileWriteStore( { data:response }); // 关联事件 self.connectEvt(self.store); self.dataGrid.setStore(self.store); } }, error : function(error) { alert("读取数据列表时出错 3 :An unexpected error occurred: " + error); } }); // 刷新表格 this.dataGrid.setStore(this.store); // 获取分页 this.getPagination(parameter); }, // 发生错误时 onError:function(error){ dojo.publish("promptMessageTopic",[{message: "数据更新错误。",type: "message", duration: 1000}]); alert(error); this.revert(); }, // 完成操作时 onComplete:function(){ dojo.publish("promptMessageTopic",[{message: "数据更新成功。",type: "message", duration: 1000}]); }, deleteManuPlan:function(){ var deleteItemIds=this.dataGrid.selection.getSelected(); console.log("deleteItemIds"); console.log(deleteItemIds); console.log(this.store.getValue(deleteItemIds[0],"id")) alert(deleteItemIds.length); if(!deleteItemIds.length){ return false; } if (!confirm('是否删除所选的记录?')) { return false; } var deleteItemIds; var n=0; var self=this; dojo.forEach(deleteItemIds,function(item){ if(!deleteItemIds){ deleteItemIds=[]; } deleteItemIds[n++]=self.store.getValue(item,"mpId"); }); var parameter={"manuPlan.id":deleteItemIds.join()}; dojo.xhrPost( { url : "manuPlan!doDeleteManuPlan.action", handleAs : "json", content : parameter, load : function(response) { if (response.id != "0") { self.dataGrid.removeSelectedRows(); self.store.save(); self.getDataList(1, 10); self.onComplete(); } else { self.onError(response.message); } }, error : function(error) { alert(error); self.onError(error); } }); }, // 初始化 init : function() { this.dataGrid.showMessage(this.dataGrid.loadingMessage); var self=this; dojo.xhrPost({ self:self, url: "manuPlan!doGetManuPlanList.action", content: {"manuPlan.pageNumber":1,"manuPlan.pagesize":10}, handleAs : "json", load : function(response) { console.log(self); if(response.id=="0"){ self.dataGrid.showMessage(self.dataGrid.errorMessage+response.message); }else{ self.store=new dojo.data.ItemFileWriteStore( { data:response }); self.connectEvt(self.store); self.dataGrid.setStore(self.store); } }, error : function(error) { alert("读取数据列表时出错 3 :An unexpected error occurred: " + error); } }); dojo.byId("dataGridDiv").appendChild(this.dataGrid.domNode); this.dataGrid.startup(); this.getPagination(); }, showLoadingMes:function(){ this.dataGrid.setStore(null); this.dataGrid.showMessage(this.dataGrid.loadingMessage); } }); var manuPlan=new ManuPlan();
<div class="search_Panel"> <form id="searchPanelForm" dojoType="dijit.form.Form"><input type="text" id="filterKeys" name="manuPlan.filterKeys" data-dojo-type="dijit.form.ValidationTextBox" data-dojo-props='maxlength:50,promptMessage:"请输入查询条件",tooltipPosition:"above" ' /> <button data-dojo-type="dijit.form.Button" data-dojo-props='onClick:function(evt){manuPlan.getDataList();}'>查 询</button> <button data-dojo-type="dijit.form.Button" data-dojo-props='disabled:true,onClick:function(evt){manuPlan.dataGrid.edit.apply(); this.set("disabled",disabled);}'>应用</button> <button data-dojo-type="dijit.form.Button" data-dojo-props='disabled:true,onClick:function(evt){manuPlan.dataGrid.edit.cancel();this.set("disabled",disabled);}'>取消</button> <button data-dojo-type="dijit.form.Button" data-dojo-props="onClick:function(evt){manuPlan.deleteManuPlan();}">删除</button> <button id="showAddDlgButton" data-dojo-type="dijit.form.Button" data-dojo-props='onClick:function(){ dijit.byId("addDlg").show() }'>添加</button> <button id="sshowModifiedItemsButton" data-dojo-type="dijit.form.Button" data-dojo-props='onClick:function(){ manuPlan.showLoadingMes(); }'>message</button> <button id="singleClickEditButton" data-dojo-type="dijit.form.Button" data-dojo-props="onClick:function(){ dijit.byId('dataGrid').singleClickEdit = !manuPlan.getDataGrid().singleClickEdit; }">单击编辑开关</button> </form> </div>