0

我在 asp.net 中创建一个网站,我有 2 个列表框:

lbxPlayer1 and lbxPlayer2

lbxPlayer1.Items.Add("bob");
lbxPlayer1.Items.Add("jack");
lbxPlayer1.Items.Add("sam");

lbxPlayer2.Items.Add("fred");
lbxPlayer2.Items.Add("brian");
lbxPlayer2.Items.Add("dave");

它们都填充了相同数量的值,我希望这样当单击其中一个列表时,另一个列表将选择相同的索引。

我该怎么做呢?我假设代码将在 lbxPlayer1_SelectedIndexChanged 事件中?

所以当我点击“jack”时,我希望“Brian”也被选中。

4

1 回答 1

2

使用SelectedIndex属性:

int index = lbxPlayer1.SelectedIndex;
if(lbxPlayer2.Items.Count > index)
   lbxPlayer2.SelectedIndex = index;

如果SelectionModeMultiple

for (int i = 0; i < lbxPlayer2.Items.Count; i++)
{ 
    if(i >= lbxPlayer1.Items.Count)
        lbxPlayer2.Items[i].Selected = false;
    else
        lbxPlayer2.Items[i].Selected = lbxPlayer1.Items[i].Selected;
}

更新

好吧,它试过了,没有任何反应也试过这个,也没有任何反应lbxPlayer2.SelectedIndex = lbxPlayer1.SelectedIndex;。dayabinding 正在页面加载事件中完成(我无法更改),我>相信它始终是 o

仅对它们进行数据绑定,if(!IsPostBack)因为ViewState将在回发中保留项目。所以我假设这个事件永远不会被触发,因为你重新绑定了ListBoxes回发。

于 2013-03-02T23:52:19.170 回答