Titanium Community Questions & Answer Archive

We felt that 6+ years of knowledge should not die so this is the Titanium Community Questions & Answer Archive

Tableview row check

I've got an issue with the hasCheck parameter. Basicly i want to be able to check and uncheck a row with an eventlistener. The kitchensink had an example on how to check a specific row. My problem is the unchecking of the row, for some reason i cant get my if statment working. here is an example:

// create table view data object
    var data = [];

    data[0] = Ti.UI.createTableViewRow({title:'row 1'});
    data[1] = Ti.UI.createTableViewRow({title:'row 2'});
    data[2] = Ti.UI.createTableViewRow({title:'row 3'}); 

    // create table view
    var tableview = Titanium.UI.createTableView({
        data:data
    });

    // create table view event listener
    tableview.addEventListener('click', function(e)
    {
        // event data
        var index = e.index;
        var section = e.section;
        var row = e.row;
        var rowdata = e.rowData;
        //row.hasCheck = true;
        var check = true;

        if(row.hasCheck === false) {
            row.hasCheck = true;
            Ti.API.info("checked");
        }

        if(row.hasCheck === true) {
            row.hasCheck = false;
            Ti.API.info("unchecked");
        }

        Ti.API.info("click");
        Ti.API.info(row.hasCheck);


        //Titanium.UI.createAlertDialog({title:'Table View',message:'row ' + row + ' index ' + index + ' section ' + section  + ' row data ' + rowdata}).show();
    });

First time you click it the row.hasCheck paramiter gives an empty trace, but checking if row.hasCheck === null aint working.

— asked March 23rd 2010 by Glenn Tillemans
  • check
  • row
  • tableview
0 Comments

2 Answers

  • Finally solved it, if statement trouble..

        // create table view data object
        var data = [];
    
        data[0] = Ti.UI.createTableViewRow({title:'row 1'});
        data[1] = Ti.UI.createTableViewRow({title:'row 2'});
        data[2] = Ti.UI.createTableViewRow({title:'row 3'}); 
    
        // create table view
        var tableview = Titanium.UI.createTableView({
            data:data
        });
    
        // create table view event listener
        tableview.addEventListener('click', function(e)
        {
            // event data
            var index = e.index;
            var section = e.section;
            var row = e.row;
            var rowdata = e.rowData;
            //row.hasCheck = true;
            var check = true;
    
            if(row.hasCheck === true) {
                row.hasCheck = false;
                Ti.API.info("unchecked");
            }
    
            else {
                row.hasCheck = true;
                Ti.API.info("checked");
            }
    
            Ti.API.info("click");
            Ti.API.info(row.hasCheck);
    
    
            //Titanium.UI.createAlertDialog({title:'Table View',message:'row ' + row + ' index ' + index + ' section ' + section  + ' row data ' + rowdata}).show();
        });
    
    — answered March 23rd 2010 by Glenn Tillemans
    permalink
    1 Comment
    • Hello i have the same solution in my code but the when you close the window, the status check does not saved.

      i would like to save if check or ot for another time (exemple for cheklist).

      Patrice

      — commented January 14th 2013 by patrice aschenbrenner
  • You are way overcomplicating your code:


    tableView.addEventListener('check', function (e) {
    row.setHasCheck( !e.row.hasCheck );
    });


    — answered November 18th 2013 by Sean Cannon
    permalink
    1 Comment
    • Sorry bad formatting, here:

      tableView.addEventListener('check', function (e) { 
          e.row.setHasCheck( !e.row.hasCheck ); 
      });
      

      — commented November 18th 2013 by Sean Cannon
The ownership of individual contributions to this community generated content is retained by the authors of their contributions.
All trademarks remain the property of the respective owner.