Сенча сенсорные переменные в других представлениях - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть файл .js, где я показываю список пулов.И когда я выбираю строку, я сохраняю poolid выбранной строки в переменной (это работает нормально).И после того, как вы выбрали строку, открывается другой вид, где вы можете увидеть гостей, которые принадлежат к бассейну.НО, чтобы показать это, мне нужно использовать переменную poolid из другого представления в этом представлении.Но как?

// Вид, где я выбираю пул

Dashboard = new Ext.Application({
name:'Dashboard',
launch: function(){
    var poolId;
    var thePanel = "allPool"
//------------------------------------List with Pool info
    var detailPanel = new Ext.Panel({
        id:'detailPanel',
        layout:'fit',
         items: [{
            fullscreen:true,
            xtype: 'list',
            store: new Ext.data.Store({
                model: 'team',
                getGroupString : function(record) {
                    return record.get('name')[0];
                },
                proxy: new Ext.data.AjaxProxy({
                    url: 'a.php/pool/listPools',
                    method:'post',
                    reader: {
                        type: 'json',
                        root: 'data',
                        totalCount: 'count'
                     }
                })
                ,autoLoad:true 
            }),
            sorters: [{
            property: 'name',
            direction: 'asc'
             }],
            itemTpl:'<font size="4" face="Helvetica, Arial" color="black">{name}</font>',
            grouped: true,
            onItemDisclosure : true,
                  listeners : {
              itemtap : function(record,index,item,e){
                 if (e.getTarget('.x-list-disclosure')) {
                     thePanel = 'guestsofPool';
                     poolId = this.store.data.items[index];
                     Ext.Ajax.request({
                        url : 'a.php/guest/listGuests' , 
                            params : { 
                            poolId: poolId
                            },
                    method: 'POST',
                    success: function (result, request) { 
                        var redirect = "showpool.php";
                        window.location = redirect;

                    },
                    failure: function ( result, request) { 
                        alert(result.responseText);
                    } 
                });
                     //TopPanel.dockedItems.items[0].setTitle('Guests');
                     //outer.setActiveItem(1, { type: 'slide', cover: false, direction: 'right'});
                 } 
                // else { Ext.Msg.alert("Item clicked!");}
               }
             }
        }]
    })

// Вид, где вы должны увидеть всех гостей выбранного ПУЛИДА

ListDemo = new Ext.Application({
name: "ListDemo",
launch: function() {

    ListDemo.detailPanel = new Ext.Panel({

        id: 'detailpanel',
        dock: "top",
        items: [{

            fullscreen:true,
            xtype: 'list',

            store: new Ext.data.Store({
                model: 'team',
                getGroupString : function(record) {
                    return record.get('name')[0];
                },   
                proxy: new Ext.data.AjaxProxy({                        
                    url: 'a.php/guest/listGuests',
                    extraParams: {
                        poolId: thepoolid which was selected in the other view 
                    },
                    method:'post',
                    reader: {
                            type: 'json',
                            root: 'data',
                             totalCount: 'count'
                                 }
                }),autoLoad:true 
            }),

            sorters: [{
            property: 'name',
            direction: 'asc'
             }],
            itemTpl:'<font size="4" face="Helvetica, Arial" color="black">{name}</font>',
            grouped: true,
            onItemDisclosure : true,
                  listeners : {
              itemtap : function(record,index,item,e){
                 if (e.getTarget('.x-list-disclosure')) {
                    //Ext.Msg.alert(index);
                    var redirect = 'showpool.php'; 
                    window.location = redirect;
                 } 
                // else { Ext.Msg.alert("Item clicked!");}
               }
             }
        }]
    });

1 Ответ

0 голосов
/ 25 января 2012

У меня не хватило терпения просмотреть весь код, который вы опубликовали. Но я хотел бы предложить, чтобы в файле index.js была переменная var selectedPool_id;, а в itemTap установить этот идентификатор. и получить значение там, где вам это нужно.

ПРИМЕЧАНИЕ. Убедитесь, что файл index.js добавлен в ваш HTML-файл до в файлы, которые выбираются и не используются.

Это был обходной путь. Я приветствую предложения и улучшения.

...