0

2 つのリスト ボックスがあり、最初のリストから 2 番目のリストを自動的に選択しようとしています。問題は、2 番目の Foreach ループでスタックしてしまい、最初のループが非同期で実行されないことです。誰か見てくれませんか、ありがとう。

        foreach (ListItem item in this.clb_Departments.Items)
        {
            foreach (ListItem it in this.cbl_fDepartments.Items)
            {
                    if (item.Value == "2")
                    {
                        if (it.Value == "2")
                        {
                            if (item.Selected == true)
                            {
                                it.Selected = true;
                                break;
                            }
                        }
                    }
                    if (item.Value == "3")
                    {
                        if (it.Value == "3")
                        {
                            if (item.Selected == true)
                            {
                                it.Selected = true;
                            }
                        }
                    }
            } 
4

3 に答える 3

3

両方ListBoxesに同じアイテムがある場合:

for(int i=0; i<cbl_fDepartments.Items.Count; i++)
    cbl_fDepartments.Items[i].Selected = clb_Departments.Items[i].Selected;
于 2013-01-23T22:17:51.230 に答える
0

これは正しいアプローチではないと思います。最初のページの最初のリスト ボックスからデータを取得したら、それをどこかに隠します。次に、レビュー ページをレンダリングするときに、2 番目のリスト ボックスの SelectedValue に、前に隠しておいた値を設定します。

何も同期する必要はありません。

于 2013-01-23T22:16:03.177 に答える
0

私はあなたが何をしようとしているのかまだ少し混乱していますが、これで始められるでしょうか?

    foreach (ListItem item in this.clb_Departments.Items)
    {
        this.cbl_fDepartments.Items[this.cbl_fDepartments.IndexOf(item)].Selected = item.Selected;
    }

それがうまくいかない場合は、代わりにこれを試すことができますforeach

this.cbl_fDepartments.Items.Cast<ListItem>().Where(t=>t.Value == item.Value).Selected = item.Selected;
于 2013-01-23T22:16:31.340 に答える