Search code examples
cross-platformtitanium

Unable to display button in tableViewRow in titanium


i am new to titanium development.i am developing ToDo application using Titanium for learning purpose.i able to display the data from database and generate tableViewRow successfully but i am stuck in one phase that i unable to display button in each row.i did R&D for it but i cant get solution.here is my code for display buttons in each row of tableViewRow it display all records from database in each row but not buttons.it shows [object TableViewRow] in each row instead of button. so please help me to solve the issue

![Titanium.UI.setBackgroundColor('black');

var win = Titanium.UI.createWindow
({  
    title:'Tab 1',
    backgroundColor:'#fff'


});

var db = Titanium.Database.install('/mydata/ToDoDB', 'ToDoDB');
    var rows = db.execute('SELECT * FROM task');
    var data1=[];

    while(rows.isValidRow())
        {

         var rowview=Titanium.UI.createTableViewRow();

         var btn=Titanium.UI.createButton
         ({
                right:'20dp',
                width:'60dp',
                height:'40dp',
                title:'Show'

         });

         rowview.add(btn);

         var tt=rows.fieldByName('title');
         var cc=rows.fieldByName('content');
         //data1.push({title:rows.fieldByName('title')},{title:rows.fieldByName('content')},{title:rowview});
         data1.push({title:tt+cc+rowview});

         rows.next();
         //rowview.add(btn);
        };
        rows.close();
    var yourTable = Ti.UI.createTableView
    ({
        width : Ti.UI.FILL,
        height : Ti.UI.FILL,
        data: data1
    });

    db.close();
    win.add(yourTable);

    win.open();

Solution

  • Try the following

    var rowview = Titanium.UI.createTableViewRow();
    
    var tt=rows.fieldByName('title');
    var cc=rows.fieldByName('content');
    
    var btn=Titanium.UI.createButton({
        right:'20dp',
        width:'60dp',
        height:'40dp',
        title:'Show'
    });
    
    var labeltt=Titanium.UI.createLabel({
        left:'20dp',
        width:'60dp',
        height:'40dp',
        text:tt
    });
    
    var labelcc=Titanium.UI.createLabel({
        left:'80dp',
        width:'60dp',
        height:'40dp',
        text:cc
    });
    rowview.add(labeltt);
    rowview.add(labelcc);
    rowview.add(btn);
    
    data1.push(rowview);
    

    I didn't tried this code, so there should be some alignment issues. I hope this will help you