-
store事件问题5
源代码:<script type="text/javascript"> Ext.define('Order',{ extend:'Ext.data.Model', fields:[ {name:"orderID",type:"int"}, "customerID","customerName", "employeeID","employeeName", {name:"orderDate",type:"date"}, {name:"requiredDate",type:"date"}, {name:"shippedDate",type:"date"}, "shipVia","companyName", {name:"freight",type:"float"}, "shipName","shipAddress","shipCity","shipRegion","shipPostalCode", "shipCountry" ], idProperty:"orderID" }); Ext.define('Customer',{ extend:'Ext.data.Model', fields:[ "CustomerID","CustomerName","ContactName", "ContactTitle","Address","City","Region", "PostalCode","Country","Phone","Fax" ], idProperty:"CustomerID" }); Ext.define('Employee',{ extend:'Ext.data.Model', fields:[ {name:"EmployeeID",type:"int"}, "EmployeeName","Title","TitleOfCourtesy", {name:"BirthDate",type:"date"}, {name:"HireDate",type:"date"}, "Address","City","Region","PostalCode","HomePhone", "Extension","Photo","Notes", {name:"ReportsTo",type:"int"} ], idProperty:"EmployeeID" }); Ext.define('Shipper',{ extend:'Ext.data.Model', fields:[ {name:"shipperID",type:"int"}, "companyName", "phone" ], idProperty:"shipperID" }); Ext.onReady(function(){ if(Ext.BLANK_IMAGE_URL.substr(0,4)!="data"){ Ext.BLANK_IMAGE_URL="Images/s.gif"; } //在此添加Ext JS代码 var customerStore = Ext.create("Ext.data.Store",{ firstLoad:true, model:"Customer", autoload:true, pageSize :100, proxy : { type : 'ajax', api:{ read:"test/GetCustomers" }, reader:{ type:"json", root:"data", messageProperty:"Msg" } }, storeId:"CustomerStore", listeners : { datachanged:function(store,opts){ if(this.firstLoad){ delete this.firstLoad; var list = [], data = store.data.items, ln = data.length; for(i=0;i<ln;i++){ list.push(data[i].data.customerID); } Order.prototype.validations.push({type:"inclusion",field:"customerID",list:list}); Ext.getCmp("add").enable(); } } } }).load(); var employeeStore = Ext.create("Ext.data.Store",{ firstLoad:true, model:"Employee", autoload:true, pageSize :100, proxy : { type : 'ajax', api:{ read:"test/GetEmployees" }, reader:{ type:"json", root:"data", messageProperty:"Msg" } }, storeId:"EmployeeStore", listeners : { datachanged:function(store,opts){ if(this.firstLoad){ delete this.firstLoad; var list = [], data = store.data.items, ln = data.length; for(i=0;i<ln;i++){ list.push(data[i].data.employeeID); } Order.prototype.validations.push({type:"inclusion",field:"employeeID",list:list}); Ext.getCmp("add").enable(); } } } }).load(); var shipperStore = Ext.create("Ext.data.Store",{ firstLoad:true, model:"Shipper", autoload:true, pageSize :100, proxy : { type : 'ajax', api:{ read:"test/GetShippers" }, reader:{ type:"json", root:"data", messageProperty:"Msg" } }, storeId:"ShipperStore", listeners : { datachanged:function(store,opts){ if(this.firstLoad){ delete this.firstLoad; var list = [], data = store.data.items, ln = data.length; for(i=0;i<ln;i++){ list.push(data[i].data.shipVia); } Order.prototype.validations.push({type:"inclusion",field:"shipVia",list:list}); Ext.getCmp("add").enable(); } } } }).load(); var orderStore=Ext.create("Ext.data.Store",{ model : "Order", pageSize :20, remoteSort:true, remoteFilter:true, autoLoad:true, proxy : { type : 'ajax', api:{ read:"test/opOrders?act=read", create:"test/opOrders?act=add", destroy:"test/opOrders?act=del", update:"test/opOrders?act=edit" }, reader : { type : 'json', root : 'data', totalProperty: 'total' }, writer:{ type:"json", encode:true, root:"data", allowSingle:false } }, storeId : 'OrdersStore' }); var panel = Ext.create("Ext.grid.Panel",{ id:"myGrid", renderTo : Ext.getBody(), title : "订单列表", height : 600, width : 1300, store : orderStore, selModel:{selType:"checkboxmodel",checkOnly:true,mode:"MULTI"}, plugins:[{ptype:"cellediting", listeners:{ edit:function(edit,e){ if(e.field == "customerID"){ var customerStore = Ext.StoreManager.lookup("CustomerStore"); var rec = customerStore.getRecorder(e.field,e.value); e.record.set("customerName",rec.data.customerName); } if(e.field == "employeeID"){ var employeeStore = Ext.StoreManager.lookup("EmployeeStore"); var rec = employeeStore.getRecorder(e.field,e.value); e.record.set("employeeName",rec.data.employeeName); } if(e.field == "shipVia"){ var shipperStore = Ext.StoreManager.lookup("ShipperStore"); var rec = shipperStore.getRecorder(e.field,e.value); e.record.set("companyName",rec.data.companyName); } } } }], tbar:{ xtype:"pagingtoolbar", store:orderStore, items:[ "|", {text:"增加",id:"add",disable:true, handler:function(){ //增加记录的函数 var grid = this.up("gridpanel"); var edit = grid.plugins[0]; var rec = new Order({ orderID:"0", customerName:"", customerID:"", employeeName:"", employeeID:"", orderDate:new Date(), requiredDate:new Date(), shippedDate:new Date(), shipVia:"", companyName:"", freight:"0.00", shipName:"", shipAddress:"", shipCity:"", shipRegion:"", shipPostalCode:"", shipCountry:"" }); edit.cancelEdit(); grid.store.insert(orderStore.getCount(),rec); edit.startEditByPosition({row:orderStore.getCount(),column:3}); } }, {text:"删除",id:"delete",disable:true, handler:function(){ //删除记录的函数 var grid=this.up("gridpanel"); var rs=grid.getSelectionModel().getSelection(); if(rs.length > 0){ var content="确定删除以下客户订单?</br>"; for(var i=0;ln=rs.length,i<ln;i++){ content+=rs[i].data.customerName+"<br/>"; } Ext.Msg.confirm("删除记录",content,function(btn){ if(btn=="yes"){ this.store.remove(rs); this.store.sync(); } },grid); } } }, {text:"保存", handler:function(){ //修改记录的函数 this.up("gridpanel").store.sync(); } } ] }, columns : [ //{xtype:"rownumberer",sortable:false,width:30,align:"center"}, {text : "订单编号", dataIndex : 'orderID',width:60,align:"center", renderer:function(v){ return Ext.String.leftPad(v,6,"0"); } }, {text : "客户名称", dataIndex : 'customerID',width:120,sortable:false,flex:1, field:{xtype:"combobox",allowBlank:false,autoRender:true, store:"customerStore",valuefield:"CustomerID",displayField:"CustomerName", forceSelection:true,triggerAction:"all" }, renderer:function(v,meta,rec){ var store = Ext.StoreManager.lookup("CustomerStore"); var rec = store.findRecord("CustomerID",rec.data.customerID); return rec.data.CustomerName; } }, {text : "营业员", dataIndex : 'employeeID',width:80,sortable:false, field:{xtype:"combobox",allowBlank:false,autoRender:true, store:"employeeStore",valuefield:"EmployeeID",displayField:"EmployeeName", forceSelection:true,triggerAction:"all" }, renderer:function(v,meta,rec){ var store = Ext.StoreManager.lookup("EmployeeStore"); var rec = store.findRecord("EmployeeID",rec.data.employeeID); return rec.data.EmployeeName; } }, {xtype:"datecolumn",text : "订购日期", dataIndex : 'orderDate',width:120,format:"Y年m月d日",editor: 'datefield'}, {xtype:"datecolumn",text : "预计到货日期", dataIndex : 'requiredDate',width:120,format:"Y年m月d日",editor: 'datefield'}, {xtype:"datecolumn",text : "发货日期", dataIndex : 'shippedDate',width:120,format:"Y年m月d日",editor: 'datefield'}, {text : "运货商", dataIndex : 'shipVia',width:80,sortable:false, field:{xtype:"combobox",allowBlank:false,autoRender:true, store:"shipperStore",valuefield:"shipperID",displayField:"companyName", forceSelection:true,triggerAction:"all" }, renderer:function(v,meta,rec){ var store = Ext.StoreManager.lookup("ShipperStore"); var rec = store.findRecord("shipperID",rec.data.shipVia); return rec.data.companyName; } }, {xtype:"numbercolumn",text : "运费", dataIndex : 'freight',width:60,format:"¥0.00",editor: 'numberfield'}, {text : "收货人", dataIndex : 'shipName',width:60,editor: 'textfield'}, {text : "收货地址", dataIndex : 'shipAddress',width:120,editor: 'textfield'}, {text : "收货城市", dataIndex : 'shipCity',width:80,editor: 'textfield'}, {text : "收货地区", dataIndex : 'shipRegion',width:60,editor: 'textfield'}, {text : "邮政编码", dataIndex : 'shipPostalCode',width:90,editor: 'textfield'}, {text : "国家", dataIndex : 'shipCountry',width:60,editor: 'textfield'}, ] }); }); </script>
点击单元格编辑时出现:
TypeError: store is undefined
store.on(listeners)
请求大神帮我看看是哪儿出问题了?2013年12月26日 12:06
目前还没有答案
相关推荐
Prooph Event Store - 一个事件源组件用于持久化事件消息。PHP 5.5 EventStore 实现。
用于创建事件驱动的数据存储的简单类。 使用npm install --save store-prototype从npm npm install --save store-prototype并按照以下示例使用。 有关更完整的用法示例,请参见。 例子: var Store = require('...
nestjs-eventstore 描述 ... 一旦将事件推送到eventStore,所有监听该事件的订阅都将从事件存储推送到该事件。 然后可以触发事件处理程序以迎合那些事件。 app.module.ts import { EventStoreBu
具有用于Vue.js的商店的事件总线,支持Vue2.x。 警告:这是一个潘多拉魔盒,频繁使用此工具会使您的维护过程痛苦。 安装 您可以通过或安装它。 $ yarn add vue-store-bus $ npm install vue-store-bus --save ...
EventStore2 EventStore2是用于使用Java创建事件源应用程序的框架。 它具有以下特点: 通过Akka进行异步执行和集群支持投影,CommandHandlers和Sagas的注释驱动配置持久性事件和网络事件的Json或二进制(Kryo)序列...
1、关于加载和回调的问题 ExtJs的Store在加载时候一般是延迟加载的,这时候Grid就会先出现一片空白,等加载完成后才出现数据;因此,我们需要给它添加一个提示信息! 但是Store却没有waitMsg属性。 解决方案: 1.给...
事件库具有JavaScript中复杂事件处理功能的开源功能数据库。 这是EventStoreDB的开源版本的存储库,其中包括实现高可用性的集群实现。支持有关支持和商业工具(如LDAP认证)的信息,请参见:。CI状态文献资料可在...
EventStoreDB是具有Java脚本中的复杂事件处理功能的开源功能数据库。 这是EventStoreDB 20+的NodeJS客户端的存储库,并使用gRPC作为通信协议。 注意:此客户端当前正在积极开发中,预计将进一步更改API。 反馈非常...
目前很多应用是要求点击事件直接跳转到App Store,最近工作中就遇到了一个跳转 App Store 评分或者下载更新的功能,网上查到很多跳转方法,这里记录一下,下面话不多说了,来一起看看详细的介绍吧。 主要跳转方法有...
事件驱动架构(Event Driven Architecture,EDA)一个事件驱动框架(EDA)定义了一个设计和实现一个应用系统的方法学,在这个系统里事件可...这种事件传送方法在基于消息的系统里就是:储存(store)和转送(forward)。
eventstore:使用PostgreSQL进行持久化的事件存储
该模块是一个插入的应用程序 默认情况下,该模块将事件存储在内存 FIFO 中,该 FIFO 在 100,000 个事件后开始覆盖它自身。 但是,这可以使用db选项换出。 安装 npm install zetta-store-and-forward 用法 var ...
NestJS CQRS模块,支持EventStore.org和NATS流。 它需要@ nestjs / cqrs。 安装 $ yarn add @juicycleff/nestjs-event-store $ yarn add node-nats-streaming node-eventstore-client 描述 该模块旨在通过支持kafka...
此外,突变事件使用户可以侦听在不同实例,窗口或工作程序中发生的数据库更改。 该模块可以与用于或可以包括脚本,其将附加IdbKvStore到window 。 用法 var store = new IdbKvStore ( 'the name of store' ) // ...
一个 php5.5+ 的事件存储。 安装 git clone git@github.com:docteurklein/event-store.git composer install 用 php example/import_products.php php example/shop.php <product> <cart xss=removed> <quantity> ...
@ immutabl3 /商店Store是一种的现代JavaScript数据存储,它支持游标,并使开发人员可以通过事件轻松导航和监视嵌套的数据它是在和完成的工作的组合和演变,通过松散耦合的API专注于性能(尤其是与数据更改有关)和...
由于App Store Connect还没有提供事件webhooks,因此这些脚本在fastlane的的帮助下使用轮询。 预览 设置 先决条件 您将需要一个Slack Bot来代表您将更新发布到您的Slack工作区。如果仍然没有,请查看有关本文。 方法...
EventStore.Client F#API 该项目当前针对 。 这是一个旨在为您的代码带来流畅...事件版本 ExpectedVersionUnion 解决链接策略 连接-此nuget在EventStore.Client.IEventStoreConnection之上实现的包装器接口,可以轻
活动商店 Ruby 客户端库 Eventstore Eventstore 是一个开源的函数式数据库,在 JavaScript 中具有复杂的事件处理功能安装将此行添加到应用程序的 Gemfile 并运行 Bundler: gem 'eventstore' 或者自己安装: $ gem ...
eventstore-cluster-docker-compose Docker构成事件存储集群的内部Docker网络设置