【问题标题】:Ext Js - How to Reference Store ValuesExt Js - 如何引用存储值
【发布时间】:2011-09-19 18:13:30
【问题描述】:

我正在尝试从表单的加载事件中读取网格值。 ordersStore.load() 用数据加载我的网格,但我没有得到使用 getAt 返回的记录。有一个更好的方法吗?谢谢。

client_form.on({
   actioncomplete: function(form, action){
      if(action.type === 'load'){
      var suite_no = action.result.data.suite_no;
      ordersStore.baseParams.suite_no = suite_no;
      ordersStore.load();
      var orderRec = Ext.data.Record.create(['order_id', 'suite_no', 'merchant', 'track_no', 'invoice_no', {name:'total',type: 'float'},  {name:'weight',type: 'float'}, 'status']);
      var orderRec = ordersStore.getAt(0);
      Ext.Msg.alert('rec=', orderRec);
         }
    }
});                                                 

【问题讨论】:

    标签: javascript extjs gridpanel jsonstore


    【解决方案1】:

    问题是 ordersStore.load() 是异步的(文档这么说)。数据将在稍后到达,并且在之后(您正在寻找它的地方)无法立即使用。

    您需要添加一个“加载”事件处理程序。在该函数中,您可以检查您的数据,因为它将在那时加载。

    【讨论】:

    • 感谢您的回复。我真的只是想从我的网格的第一行中获取一个值。给定一个 myGrid 对象,您是否知道获取单元格值的语法 - 类似于 var my_order_id = ordersGrid.get('order_id');
    • @hadenp:正如我所说,此时您无法在代码中获取值。此处未加载网格。 “ordersStore.load()”之后的代码将在商店加载之前运行。话虽如此,myGrid.getStore().getAt(0).get("order_id") 应该从网格存储的第一行获取 order_id 字段。
    • 好的。非常感谢您花时间为新手澄清!
    • @hadenp: ...如果它回答了您的问题,您应该接受一个答案(单击您想接受的答案旁边的复选标记)...如果有人回答了您的任何其他问题让您满意,您也应该接受这些。
    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2015-06-10
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多