从onChange事件填充FilteringSelect数据存储 [英] Populating a FilteringSelect datastore from an onChange event

查看:118
本文介绍了从onChange事件填充FilteringSelect数据存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图绑定一个 FilteringSelect onChange 事件来填充另一个是FilteringSelect

I'm trying to bind an onChange event of one FilteringSelect to populate another FilteringSelect.

// View
dojo.addOnLoad(function () {
    dojo.connect(dijit.byId('filterselect1'), 'onChange', function () {
        dijit.byId('filterselect2').store = new dojo.data.ItemFileReadStore(
            { url: "/test/autocomplete/id/" + dijit.byId("filterselect1").value }
        );
    });
});

JSON是从Zend Action Controller使用 autoCompleteDojo helper。

The JSON is generated from what I can tell correctly from a Zend Action Controller using a autoCompleteDojo helper.

// Action Controller
public function autocompleteAction()
{
    $id = $this->getRequest()->getParam('id');
    $select = $this->_table->select()
                           ->from($this->_table, array('id','description'))
                           ->where('id=?',$id);

    $data = new Zend_Dojo_Data('id', $this->_table->fetchAll($select)->toArray(), 'description');

    $this->_helper->autoCompleteDojo($data);
}

我正在从远程数据存储区收到JSON,但不会填充第二个 FilteringSelect 。还有什么我需要做的,将JSON推送到 FilteringSelect

I receive the JSON from the remote datastore correctly, but it does not populate the second FilteringSelect. Is there something else I need to do to push the JSON onto the FilteringSelect?

推荐答案

我不敢相信这是导致问题的,但是整个问题归结于这样一个事实:似乎一个dojo ItemFileReadStore 需要将JSON的label属性设为name 。最后,这就是将它们连线在一起所需要的。

I couldn't believe this was causing the problem, but the whole issue boiled down to the fact that it appears that a dojo ItemFileReadStore REQUIRES the label property of the JSON to be "name". In the end this is all that it required to wire them together.

dojo.addOnLoad(function () {

    dijit.byId('filtering_select_2').store = new dojo.data.ItemFileReadStore({url: '/site/url'});

    dojo.connect(dijit.byId('filtering_select_1'), 'onChange', function (val) {
        dijit.byId('filtering_select_2').query.property_1 = val || "*";
    });
});

更新:Zend格式的属性已经修改为ZF 1.8.4

UPDATE: The property within Zend form has been fixed as of ZF 1.8.4

这篇关于从onChange事件填充FilteringSelect数据存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆