尝试将行追加到表钛时出错

时间:2015-07-31 14:04:11

标签: javascript uitableview appcelerator titanium-alloy

我正在尝试向表中添加一行。该表是用合金创建的,我试图附加来自js的行。

这是xml

            cbLocal.DisplayMember = "loc_descricao";
            cbLocal.ValueMember = "loc_cod";
            cbLocal.DataSource = localNegocios.RetornaLocal();

这是.js

<Alloy>
<Window id='index' class="container">
    <TableView  id="MainThings">
        <TableViewSection id='MainThingsSection'>

            </TableViewSection>
    </TableView>
    <Label id="AddCounter" onClick="doClick">+</Label>
    <Label id="clear" onClick="clear">-</Label>
</Window>

这是错误

function Loader(){
var row= Titanium.UI.createTableViewRow({
    title:'Title'
});
$.MainThingsSection.append(row);
}$.MainThings.addEventListener('open',Loader());
$.index.open();

2 个答案:

答案 0 :(得分:0)

此代码中的错误是它不喜欢该行。:

$.MainThings.addEventListener('open',Loader()); 
Should Be
$.MainThings.addEventListener('open',Loader); 

这不是TableView没有打开&#39;事件,因此此代码不会以您尝试的方式链接事件。

INDEX.XML

<Alloy>
    <Window id='index' class="container">
        <TableView  id="MainThings">
            <TableViewSection id='MainThingsSection'>

            </TableViewSection>
        </TableView>
        <!-- <Label id="AddCounter" onClick="doClick">+</Label> -->
        <!-- <Label id="clear" onClick="clear">-</Label> -->
    </Window>
</Alloy>

index.js

function Loader(){
    console.log("This code doesn't run."); // <====== This doesn't run.
    var row = Ti.UI.createTableViewRow({
        title:'Title'
    });
    $.MainThingsSection.add(row);
}

$.MainThings.addEventListener('open', Loader); // <===== This is nothing.
$.index.open();

答案 1 :(得分:0)

无需使用 $ .MainThings.addEventListener('open',Loader()); 代码。相反,您可以在 $ .index.open()之前直接调用 Loader()函数。

而不是使用append方法使用 appendRow 方法

$.MainThingsSection.appendRow(row);

注意:在呈现表之前,可以使用TableViewSection add方法将TableViewRow对象添加到节中。在渲染之后,必须使用TableView insertRowBefore,insertRowAfter或appendRow方法之一。