{ "id": "61478", "key": "TIMOB-846", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2017-06-07T22:28:05.000+0000", "created": "2011-04-15T02:37:45.000+0000", "priority": { "name": "Trivial", "id": "5" }, "labels": [], "versions": [ { "id": "11225", "name": "Release 1.5.0", "archived": true, "released": true, "releaseDate": "2010-12-14" } ], "issuelinks": [], "assignee": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-06-07T22:28:05.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "{html}

from premium ticket:

\r\n

http://helpdesk.appcelerator.net/tickets/1467

\r\n

code:

\r\n

var data = [];
\r\nvar win = Ti.UI.createWindow();
\r\n// Add filler data. // sort1 = index for this row if sorted by row\r\nnumber // sort2 = index for this row if reverse sorted by row\r\nnumber

\r\n

for(var i = 0; i < 100; i++)
\r\n{

\r\n
\r\ndata.push({title:'Row '+i, sort1:i, sort2:(99 - i)});\r\n
\r\n

}

\r\n

// Add headers for default view based on first digit of row\r\nnumber.

\r\n

var prev = -1;

\r\n

for(i = 0; i < data.length; i++)
\r\n{

\r\n
\r\nvar v = Math.floor(parseInt(data[i].sort1, 10) / 10);\r\n\r\nif(v != prev)\r\n{\r\n    prev = v;\r\n    data[i].header = ''+v;\r\n}\r\n
\r\n

}

\r\n

// Create table view.

\r\n

var tableView = Ti.UI.createTableView({data:data,\r\ntop:50,height:300});
\r\nwin.add(tableView);

\r\n

// Create button to swap between sorted data sets.

\r\n

var b =\r\nTi.UI.createButton({title:'Sort',top:10,height:30,width:300});
\r\nb.addEventListener('click', function(e)
\r\n{

\r\n
\r\nsortData(tableView);\r\n
\r\n

}); win.add(b);

\r\n

// Swap between data sets for specified tableView.

\r\n

function sortData(tv)
\r\n{

\r\n
\r\nvar newdata = [];\r\nvar sections = tv.data;\r\n\r\n// Retrieve current data set.\r\n\r\nfor(var i = 0; i < sections.length; i++)\r\n{\r\n    var section = sections[i];\r\n\r\n    for(var j = 0; j < section.rowCount; j++)\r\n    {\r\n        var row = section.rows[j];\r\n\r\n        // Insert old row at the correct sorted position in the new array.\r\n        newdata[row.sort2] = row;\r\n\r\n        // Delete any existing header for this row so we don't munge headers from both data sets.\r\n        delete newdata[row.sort2].header;\r\n    }\r\n}\r\n\r\n// Add headers for newdata based on first digit of sort2.\r\nvar prev = -1;\r\n\r\nfor(i = 0; i < newdata.length; i++)\r\n{\r\n    var v = Math.floor(parseInt(newdata[i].sort2, 10) / 10);\r\n\r\n    if(v != prev)\r\n    {\r\n        prev = v;\r\n        newdata[i].header = ''+v;\r\n    }\r\n}\r\n\r\n// Update tableView with newdata.\r\ntv.setData(newdata);\r\n
\r\n

}

\r\n

win.open();

{html}", "attachment": [], "flagged": false, "summary": "iOS: Dynamically setting row header (or removing) in table view = not work", "creator": { "name": "nwright", "key": "nwright", "displayName": "Nolan Wright", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "nwright", "key": "nwright", "displayName": "Nolan Wright", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "124186", "author": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

valid, needs testcase

{html}", "updateAuthor": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:37:46.000+0000", "updated": "2011-04-15T02:37:46.000+0000" }, { "id": "161949", "author": { "name": "vsingh", "key": "vsingh", "displayName": "Vikramjeet Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Bug Scrub: Valid. No test Case exists\r\n\r\nNote: Row header does not change dynamically after sorting the rows in a reverse order.\r\n\r\nTested On: \r\nMac OSX Lion \r\nTiMob Version: 1.7.2 \r\nTiStud Version: 1.0.2 \r\n\r\nDevices used: \r\niPhone 4.3.4", "updateAuthor": { "name": "vsingh", "key": "vsingh", "displayName": "Vikramjeet Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-08-04T16:36:21.000+0000", "updated": "2011-08-04T16:36:21.000+0000" }, { "id": "421275", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket due to time passed and lack of work.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-06-07T22:28:05.000+0000", "updated": "2017-06-07T22:28:05.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }