如何从ComboBox(ExtJS)中的商店中选择特定记录

时间:2010-01-07 21:08:11

标签: javascript extjs

我有一个带有远程json商店的ComboBox。

它允许用户键入3个以上的字符,然后查询,显示列表并让用户选择一个选项。当用户选择一个选项时,它使用与所选选项关联的Ext.data.Record来填充表单中其他位置的其他字段。这可以正常工作。

现在我希望能够通过使用我已经作为组合框一部分编写的函数来预填充所述字段。我想出的是,在ComboBox的商店中添加一个“人工记录”,然后强制选择 - 这将触发所有正确的功能并填充其他字段等。

我所拥有的是ComboBox中的这个函数(我通过扩展ComboBox创建了一个自定义函数):

loadRecord : function( record ){
    var data = {
        "results":1,
        "rows":[
            record
        ]
    }

    this.store.loadData( data ); // I realize I could just use store.add() instead.

    alert( this.store.getCount() ); // returns 1, so the record is in

    // Here is where I'd need to make a call to select this record.
}

我已经尝试过this.select()和this.selectByValue(),但无济于事。知道记录在商店中,从代码中选择它的正确方法是什么?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

你试过combo.fireEvent('click', combo, record, index)吗?

答案 1 :(得分:1)

这个怎么样:

record = this.store.getAt(1);