0

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

因此,在“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) 用户断开连接后如何组织信息删除?

先感谢您!

4

1 回答 1

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根据需要使用。
顺便说一句,我喜欢你的数据网格的风格。

于 2012-02-16T08:45:21.663 回答