1

各行にいくつかのテキストフィールドを含むテーブルビューを作成していますが、問題はそれらの値にアクセスする方法がわからないことです。

これは私のコードです:

function TextFieldValueWindow(title, value1,value2) {
var self = Ti.UI.createWindow({
    backgroundImage:'/images/backgrounds/BG_table_view.jpg',
    fullscreen :false,
    navBarHidden:true
});

var my_navbar = Ti.UI.createLabel({
    height:'25dp',
    font:{fontFamily:'Arial',fontWeight:'bold',fontSize:'14dp'},
    backgroundColor:'#2451A1',
    width:'100%',
    color:'#fff',
    textAlign:Ti.UI.TEXT_ALIGNMENT_CENTER,
    text:title,
    top:0
});

var data = [];

var xhr = Ti.Network.createHTTPClient();
xhr.timeout = 1000000;
xhr.open("GET","http://xxxx.com/xxx?m="+value1+"");

xhr.onload = function() {

    try {
        var students = JSON.parse(this.responseText);

        for (var c=0;c<students.length;c++){
            var id = students[c].id;
            var name = students[c].name;
            var lastName = students[c].lastName;

            var row = Ti.UI.createTableViewRow({height:'280dp',height:'30dp',RowStudentID:id,backgroundColor: 'transparent'});

            var name_label = Ti.UI.createLabel({
                text:name,
                left:'10dp',
                width:'120dp',
                top:'5dp',
                bottom:'2dp',
                height:'18dp',
                textAlign:'left',
                color:'white',
                font:{fontFamily:'Trebuchet MS',fontSize:14,fontWeight:'bold'}
            });

            var lastname_label = Ti.UI.createLabel({
                text:lastName,
                left:'10dp',
                width:'120dp',
                top:'25dp',
                bottom:'2dp',
                height:'18dp',
                textAlign:'left',
                color:'white',
                font:{fontFamily:'Trebuchet MS',fontSize:14,fontWeight:'bold'}
            });

            var textfieldinput =    Titanium.UI.createTextField({
                width:'50dp',
                right:'5dp',
                top:'10dp',
                height:'40dp',
                value:'',
                keyboardType:Ti.UI.KEYBOARD_NUMBER_PAD,
                //borderStyle:Titanium.UI.INPUT_BORDERSTYLE_NONE
            });

            row.add(lastname_label);
            row.add(name_label);    
            row.add(textfieldinput);

            row.className = 'item'+c;
            data[c] = row;
        }


        var tableview = Titanium.UI.createTableView({
            data:data,
            top:'25dp',
            height:'370dp',
            backgroundColor: 'transparent',
            minRowHeight:'50dp'
        });

        self.add(my_navbar);
        self.add(tableview); 

    }catch(E){
        alert(E);
    }

    var notasBtn = Titanium.UI.createButton({
        title:'btn',
        width:'140dp',
        height:'40dp',
        borderRadius:'2dp',
        bottom:'10dp',
        verticalAlign:'center',
        font:{fontFamily:'Arial',fontWeight:'bold',fontSize:'14dp'}
    });
    self.add(notasBtn);

    notasBtn.addEventListener('click', function(e){ 

        var dataNotas=[];
        var _rowData = tableview.data[0].rows;
        for ( var x in _rowData) {
             Ti.API.info(??); 
        }
    });
};

self.addEventListener('open', function() {
    xhr.send();
});

return self;

};

module.exports = TextFieldValueWindow;

TextField値(textfieldinput.value)を取得する方法についての良い例を見たことがないので、動き続けることができません:(

あなたが私を助けてくれることを願っています。


それを見つけた!

「_rowData[x].children[2].value」は、行のテキストフィールド内の値を取得します。x は行のインデックスで、2 は TableViewRow 内の 3 番目のオブジェクトである子のインデックスです。

4

1 に答える 1