Populating a FilteringSelect datastore from an onChange event

女生的网名这么多〃 提交于 2019-12-29 09:11:13

问题


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 }
        );
    });
});

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);
}

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?


回答1:


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 || "*";
    });
});

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




回答2:


Try console.log() in the event to see if it is launched. Changing the store should work, however for other widgets like grid you have also to call refreshing methods.



来源:https://stackoverflow.com/questions/753533/populating-a-filteringselect-datastore-from-an-onchange-event

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!