Flex,如何将dataGrid dataField中的数据与字符串值进行比较?

时间:2012-02-16 01:57:46

标签: flex datagrid compare chat datafield

问题似乎很简单,但它给我带来了麻烦。我有一个带有两个dataField的dataGrid:peerID,name。当新用户加入群组时,网格中的信息会动态更新(我正在创建聊天)。我需要关于用户在断开连接后从网格中删除的信息。

所以,在“NetGroup.Neighbor.Disconnect”:事件我想比较“event.info.peerID”值与网格中的所有peerID值并删除有关断开连接的用户的信息。

我正在尝试使用下一个构造:

for (var i:uint, len:uint = txtDataArray.length; i < len; i++)
                        {
                        if (txtDataArray.source[i] == event.info.peerID)
                        {
                            txtDataArray.removeItemAt(i);
                        break;
                        }
                            }



<s:DataGrid id="txtData" x="11" y="59" width="238" height="164" alternatingRowColors="[ #67676767, #555555]" borderVisible="true" chromeColor="#555555" color="#CCCCCC" contentBackgroundColor="#555555" dataProvider="{callerns}" fontWeight="bold" requestedRowCount="4" rollOverColor="#08700D" selectionColor="#08700D" symbolColor="#CCCCCC">
        <s:columns>
            <s:ArrayList id="txtDataArray">
                <s:GridColumn dataField="name" headerText="USERS ONLINE"></s:GridColumn>
                <s:GridColumn dataField="peerID" headerText="USER ID" visible="true"></s:GridColumn>
            </s:ArrayList>
        </s:columns>
    </s:DataGrid>

但它根本不起作用!

我注意到构造txtDataArray.source [i](或txtDataArray.getItemAt(i))返回了[object GridColumn]的值。所以,我有两个问题: 1)如何获得精确细胞的价值? 2)用户断开连接后如何组织信息删除?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

为什么使用txtDataArray.source[i]
你可以这样写:

    for (var i:int; i < callerns.length; i++)
    {
        if (callerns[i].peerID == event.info.peerID)
        {
            callerns.removeItemAt(i);
            break;
        }
    }

或如果您愿意,请使用for each 顺便说一下,我喜欢你的datagrid风格。