ylove
2009-06-29 17:26
浏览 278
已采纳

Extjs的ItemSelector中的toStore重新加载的问题

在使用ItemSelector的时候,根据传入的参数重新加载toStore,但是加载后的toStore数据不刷新还是第一次加载的数据。具体代码如下:
[code="java"]
{
id : 'assignResource',
text : '分配资源',
icon : 'images/drop-yes.gif',
cls : 'x-btn-text-icon',
handler : function() {

        var sm = grid.getSelectionModel();
        var sel = sm.getSelected();

        if (sm.hasSelection()) {

            getResourcesToStoreJsonUrl = getResourcesToStoreJsonUrl
                    + "&resourceList=" + sel.data.id;
            alert(getResourcesToStoreJsonUrl);

            var resourceResultsStore = new Ext.data.Store({
                        url : getResourcesJsonUrl,
                        reader : new Ext.data.JsonReader({
                                    root : 'rows', // 返回结果集
                                    pruneModifiedRecords : true,
                                    totalProperty : 'results', // 返回总条数
                                    id : 'returnValue' // 主键
                                }, [{
                                            name : 'returnValue'
                                        }, {
                                            name : 'displayText'
                                        }])
                    });

            var resourcesToStore = new Ext.data.Store({
                        url : getResourcesToStoreJsonUrl,
                        reader : new Ext.data.JsonReader({
                                    root : 'rows', // 返回结果集
                                    pruneModifiedRecords : true,
                                    totalProperty : 'results', // 返回总条数
                                    id : 'returnValue' // 主键
                                }, [{
                                            name : 'returnValue'
                                        }, {
                                            name : 'displayText'
                                        }])
                    });

            // 分配资源form
            var itemSelect = new Ext.ux.ItemSelector( {                 
                name : "resourcesList",
                fieldLabel : "资源组分配",
                dataFields : ["returnValue", "displayText"],
                fromStore : resourceResultsStore,
                toStore : resourcesToStore,
                msWidth : 250,
                msHeight : 200,

                valueField : "returnValue",
                displayField : "displayText",
                imagePath : "images/",
                toLegend : "已分配资源",
                fromLegend : "现有资源",

                toTBar : [{
                    text : "清除",
                    handler : function() {
                        var i = assingResourceForm.getForm()
                                .findField("itemselector");
                        i.reset.call(i);
                    }

                }]

            });



            resourcesToStore.reload();
            resourceResultsStore.reload();              var assingResourceForm = new Ext.form.FormPanel({
                        url : postUrl,
                        xtype : 'fieldset',
                        autoHeight : true,
                        layout : 'form',
                        items : [itemSelect]
                    });



                 var assignRWindow = new Ext.Window({
                            layout : 'fit',
                            title : '<div style="text-align:center">分配资源</div>',
                            width : 800,
                            height : 520,
                            closeAction : 'hide',
                            plain : true,
                            maximizable : true,
                            items : new Ext.TabPanel({
                                        region : 'center',
                                        border : false,
                                        activeTab : 0,
                                        items : [{
                                                    title : "资源分配登记",
                                                    autoScroll : true,
                                                    items : [assingResourceForm]
                                                }]
                                    }),
                            buttons : [{
                                text : '保存',
                                handler : function() {
                                    // 保存修改信息

                                    if (assingResourceForm.getForm()
                                            .isValid()) {

                                        Ext.Msg
                                                .alert(
                                                        '数据提交',
                                                        '新分配的资源ID为以下: <br />'
                                                                + (assingResourceForm
                                                                        .getForm()
                                                                        .getValues(true)));
                                        var conn = Ext.lib.Ajax
                                                .getConnectionObject().conn;
                                        conn
                                                .open(
                                                        "post",
                                                        assignResourcesUrl
                                                                + "&"
                                                                + assingResourceForm
                                                                        .getForm()
                                                                        .getValues(true),
                                                        false);
                                        conn.send(null);
                                        /*
                                         * if
                                         * ((conn.responseText).indexOf('correct') ==
                                         * -1) { Ext.MessageBox.alert('提示',
                                         * '输入的验证码不正确,请重新输入!');
                                         * authImg.focus(); return false; }
                                         */

                                    } else {
                                        Ext.MessageBox.alert('错误',
                                                '请修正页面提示的错误后提交。');
                                    }

                                }
                            }, {
                                text : '关闭',
                                handler : function() {
                                    assignRWindow.hide();
                                }
                            }],

                            listeners : { // 保证最大化后窗口中的滚动条不出问题
                                close : function(w) {
                                    w.restore();
                                },
                                maximize : function(w) {
                                    w.setPosition(document.body.scrollLeft,
                                            document.body.scrollTop);
                                }
                            }
                        });


            assignRWindow.setPosition(0, 3);
            assignRWindow.show();

        } else {
            Ext.MessageBox.alert('提示', '请选择要为其分配资料的组!').getDialog('提示')
                    .setPosition(300, 150);
        }

    }
}

[/code]

有遇到过这个问题的朋友还请指点一下。
感谢!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • zhoujuan520 2009-07-01 16:00
    已采纳
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dingpeng741 2013-03-06 22:47

    用 bindStore 方法添加store

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题