Titanium中TableView实现内部的PickerView



我在TableView中创建了一个PickerView,它位于tableViewRow上。但我无法访问选取器的全部属性。

例如,我无法设置PickerView的TextHint我无法在index.js 中的选择器中获取selectedRow

这是我在index.xml中的代码

<Alloy>
<Window class="container">
    <!-- <Label id="label" onClick="doClick">Hello, World</Label> -->
    <TableView id="table">
        <TableViewSection>
             <TableViewRow>
                <TextField id="id_membership_number" width="Ti.UI.FILL" hintText="Membership Number"/>
            </TableViewRow>
            <TableViewRow>
             <Picker id="id_picker" selectionIndicator="true" onChange="picker_method" value="Sector" selectionIndicator="true">
            <!-- On iOS, views can be added to picker rows -->
                    <PickerColumn id="column1">                
                        <PickerRow title="Real Estate"  id="id_picker_row">0</PickerRow>
                        <PickerRow title="Automobiles"  id="id_picker_row">1</PickerRow>
                        <PickerRow title="Others"  id="id_picker_row">2</PickerRow>
                    </PickerColumn>
            </Picker>
            </TableViewRow>
            <TableViewRow title="Region"/>
            <TableViewRow title="Membership Type"/>
        </TableViewSection>
    </TableView>
    <Button id="id_member_search_btn" onClick="member_search_method"></Button>
</Window>

index.js

function picker_method(event){
    event=$.id_picker;
    Ti.API.info("User selected: " + event.getSelectedRow(0) + column.getSelectedRow(0));
}

在控制台上我得到:

User selected: undefined

在您的视图中:

<Alloy>
<Window class="container">
    <!-- <Label id="label" onClick="doClick">Hello, World</Label> -->
    <TableView id="table">
        <TableViewSection>
             <TableViewRow>
                <TextField id="id_membership_number" width="Ti.UI.FILL" hintText="Membership Number"/>
            </TableViewRow>
            <TableViewRow>
             <Picker id="id_picker" selectionIndicator="true" onChange="picker_method" value="Sector" selectionIndicator="true">
             <!-- On iOS, views can be added to picker rows -->
                <PickerColumn id="column1">                
                    <PickerRow title="Real Estate"/>
                    <PickerRow title="Automobiles"/>
                    <PickerRow title="Others"/>
                </PickerColumn>
            </Picker>
            </TableViewRow>
            <TableViewRow title="Region"/>
            <TableViewRow title="Membership Type"/>
        </TableViewSection>
    </TableView>
    <Button id="id_member_search_btn" onClick="member_search_method"></Button>
</Window>
</Alloy>

在您的JS:中

function picker_method(event){
    Ti.API.info("user selected   : "+event.selectedValue);
}

您应该阅读更改事件文档,以获取有关传递给onchange处理程序的内容的更多信息http://docs.appcelerator.com/titanium/3.0/#/api/Tatitanium.UI.Picker-event-change

另外,请注意,我删除了你在PickerRows上的重复ID,ID必须是唯一的。

最新更新