2016-07-26 12 views
1

У меня есть простое приложение ралли, которое отображает базовую сетку. Я фильтрую, ища «WorkProduct.AcceptedDate» между двумя датами, это отлично работает.Получить данные для столбца

Где у меня есть вопрос, что я хочу также вернуть «WorkProduct.AcceptedDate» в сетке данных, но это, кажется, не хочет работать :(

Так что же вы думаете, что я не беру во внимание?

<!DOCTYPE html> 
<html> 
<head> 
    <title>Grid Example</title> 

    <script type="text/javascript" src="/apps/2.0rc1/sdk.js"></script> 

    <script type="text/javascript"> 
     Rally.onReady(function() { 
      Ext.define('CustomApp', { 
       extend: 'Rally.app.App', 
       componentCls: 'app', 

       launch: function() { 
        Rally.data.ModelFactory.getModel({ 
         type: 'Task', 
         success: function(model) { 
          this.grid = this.add({ 
           xtype: 'rallygrid', 
           model: model, 
           columnCfgs: [ 
            'FormattedID', 
            'Name', 
            'Owner', 
            'Estimate', 
            'WorkProduct', 
            'WorkProduct.AcceptedDate', 
            'ToDo', 
            'c_HoursWorked' 
           ], 
           storeConfig: { 
            filters: [ 
             { 
              property: 'WorkProduct.AcceptedDate', 
              operator: '>=', 
              value: '2016-07-01T23:59:59.000Z' 
             }, 
             { 
              property: 'WorkProduct.AcceptedDate', 
              operator: '<=', 
              value: '2016-07-31T23:59:59.000Z' 
             } 
            ] 
           } 
          }); 
         }, 
         scope: this 
        }); 
       } 
      }); 

      Rally.launchApp('CustomApp', { 
       name: 'Grid Example' 
      }); 
     }); 
    </script> 

    <style type="text/css"> 
    </style> 
</head> 
<body></body> 
</html> 
+1

Я думаю, что точка в названии может быть проблемой. Я не нашел никакой документации по «rallygrid», но если это хоть какая-то сетка, вы можете добавить такую ​​конфигурацию: '{dataIndex: 'WorkProduct.AcceptedDate', renderer: function() {// renderer code' , Трудно сказать без кода. Не могли бы вы поставить скрипку? – MarthyM

ответ

0

Ты супер близко к имея ее. Проверьте в приведенном ниже примере.

Вам просто нужно указать столбец AcceptedDate в ваших columnCfgs и включают в себя функцию средства визуализации, чтобы правильно сделать из дата.

Второе изменение - добавление AcceptedDate в выборку в storeConfig, поэтому мы гарантируем, что данные будут возвращены для каждого связанного WorkProduct.

Я также обновил приложение до последней версии SDK версии 2.1.

<!DOCTYPE html> 
<html> 
<head> 
    <title>Grid Example</title> 

    <script type="text/javascript" src="/apps/2.1/sdk.js"></script> 

    <script type="text/javascript"> 
     Rally.onReady(function() { 
      Ext.define('CustomApp', { 
       extend: 'Rally.app.App', 
       componentCls: 'app', 

       launch: function() { 
        Rally.data.ModelFactory.getModel({ 
         type: 'Task', 
         success: function(model) { 
          this.grid = this.add({ 
           xtype: 'rallygrid', 
           model: model, 
           columnCfgs: [ 
            'FormattedID', 
            'Name', 
            'Owner', 
            'Estimate', 
            'WorkProduct', 
            //Use object syntax for specifying a column here, including a renderer function. 
            { 
             text: 'Accepted Date', 
             dataIndex: 'WorkProduct', 
             renderer: function(value, metaData, record) { 
              var date = record.get('WorkProduct').AcceptedDate; 
              return Rally.util.DateTime.formatDate(date); 
             } 
            }, 
            'ToDo', 
            'c_HoursWorked' 
           ], 
           storeConfig: { 
            filters: [ 
             { 
              property: 'WorkProduct.AcceptedDate', 
              operator: '>=', 
              value: '2016-07-01T23:59:59.000Z' 
             }, 
             { 
              property: 'WorkProduct.AcceptedDate', 
              operator: '<=', 
              value: '2016-07-31T23:59:59.000Z' 
             } 
            ], 
            //need to fetch AcceptedDate as well 
            fetch: ['AcceptedDate'] 
           } 
          }); 
         }, 
         scope: this 
        }); 
       } 
      }); 

      Rally.launchApp('CustomApp', { 
       name: 'Grid Example' 
      }); 
     }); 
    </script> 

    <style type="text/css"> 
    </style> 
</head> 
<body></body> 
</html>