2012-11-19 77 views
0

我正在制作拉力赛中的自定义网格,以在我的项目中创建投资组合项目表。我试图公开的一个字段是“计划开始日期”。当按原样使用时,它将按照以下格式返回日期时间 - “YYYY-MM-DDTHH:MM:SS.xxxZ”。我一直试图使用rally.sdk.util.DateTime.format(date(),“yyyy-MM-dd”)函数来创建我的rowInfo名称/值对时返回日期而不是整个事物添加到我的表中,但它不工作。将格式化日期添加到自定义网格

任何想法?

var tbCfgTable = { 
    columns: [{ 
     key: 'ID', 
     width: "20%" 
    },{ 
     key: 'Name', 
     width: "4%" 
    },{ 
     key: 'Planned Start', 
     width: "4%" 
    },{ 
     key: 'Planned End', 
     width: "3%" 
    }] 
}; 
gTable = new rally.sdk.ui.Table(tbCfgTable); 

var nbrPis = theResults.pisQueryKey.length; 
for (var ndx = 0; ndx < nbrPis; ndx++){ 
    aPi = theResults.pisQueryKey[ndx]; 
    // populate planned schedule rows 
    aRowInfo = { 
      'ID': aPi.Name, 
      'Name': aPi.Name, 
      'Planned Start': aPi.PlannedStartDate, 
      'Planned End': aPi.PlannedEndDate 
      }; 
    gTable.addRow(aRowInfo); 
} 
+0

如果您可以发布一小段代码,您目前可能会帮助我们更多地帮助您。 = - ) –

回答

0

你真正接近得到它 - 所有你需要做的是第一解析日期字符串转换成日期对象,然后进行格式化。

//function to format date 
function formatDate(dateString) { 
    if(!dateString) { return ''; } 

    return rally.sdk.util.DateTime.format(
     rally.sdk.util.DateTime.fromIsoString(dateString, true), 'yyyy-MM-dd'); 
} 

//build your table rows as usual, calling formatDate for each date field 
aRowInfo = { 
    'ID': aPi.Name, 
    'Name': aPi.Name, 
    'Planned Start': formatDate(aPi.PlannedStartDate), 
    'Planned End': formatDate(aPi.PlannedEndDate) 
}; 
+0

感谢您的信息。我试图做到这一点,但我现在得到这个代码的TypeError。好像它正在返回一个字符串,这就是你在RowInfo中所期待的,所以我不确定不匹配的地方。 – jlicup

+0

您可能有一些没有设置PlannedStart/EndDate字段中的一个或两个的PI。在formatDate中,首先检查是否定义了dateString,如果不是,则返回空字符串。我更新了上面的例子来反映... –

+0

谢谢,这工作! – jlicup