【问题标题】:Extjs Grid - Click event listenerExtjs Grid - 点击事件监听器
【发布时间】:2012-11-27 13:36:36
【问题描述】:

我确实通过以下方式成功地将行双击事件侦听器添加到我的网格中:

listeners : {
    itemdblclick: function(dv, record, item, index, e) {
        alert('working');
    }
},

现在,我需要在所选行的第三列中获取确切的值,我该怎么做?

编辑

好的,找到了:

listeners: {
    itemclick: function(dv, record, item, index, e) {
        alert(record.get('name'));
    }
}

但似乎record.get('name') 的结果不是文本!它是一个对象,但我无法像处理文本一样处理它。有人知道吗?

编辑

例如,如果我将名称传递给搜索函数:Search(record.get('name'));,这将不起作用。但如果我这样传递:Search('Mike'); 它有效!

【问题讨论】:

  • 你知道第三列是绑定的吗? IE,你已经知道dataIndex了吗?
  • 刚刚更新了我的帖子。谢谢
  • 你确定吗? record.get() 给你什么对象??如果你的数据是一个字符串,它会给你一个字符串。你可以在调试器中检查它吗?
  • 是的,我确定,我成功地将名称作为字符串,但是当我将它传递给另一个函数时,它无法处理它,另一方面,如果我传递名称本身(我输入它),功能正常。
  • 您可以使用console.log(record.data) 或在您的情况下使用console.log(record.get('name')) 查看您的记录数据。不要使用 alert()

标签: javascript extjs extjs4 click gridpanel


【解决方案1】:

确保

  • 您的属性名称实际上是小写的“名称”而不是“名称”
  • 使用console.log(record.get('name')) 将字段的值打印到控制台,或通过键入console.log(record.data.name)console.log(record.data['name']) 使用直接访问。基本上都应该返回相同的结果。
  • 要将值强制转换为字符串,请像 var myVar = 2; myVar = myVar + ''; // now print 20 as string 一样即时应用 ''

【讨论】:

    【解决方案2】:

    试试看,

    listeners: {
    itemclick: function(dv, record, item, index, e) {
     var selectedRec = dv.getSelectionModel().getSelected();          
     alert(selectedRec.get('name')); //Will display text of name column of selected record
    }
    

    【讨论】:

    • 收到此错误:Object [object Object] has no method 'getSelected'
    • @Noon 你不能在 4.x 之前调用 getSelected() 这个。请改用getSelection()。但是不建议在单击事件的情况下不打开多选进行此操作,您已经将记录作为第二个参数!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2012-09-19
    相关资源
    最近更新 更多