相关疑难解决方法(0)

在ListBox中设置所选项而不循环

我有一个多选列表框,我绑定到DataTable.DataTable包含2列描述和值.

这是列表框填充代码:

DataTable copytable = null;
                copytable = GlobalTable.Copy(); // GlobalTable is a DataTable
                copytable.Rows[0][0] = "--ALL--";
                copytable.Rows[0][1] = "--ALL--";

                breakTypeList.DataSource = copytable;
                this.breakTypeList.DisplayMember = copytable.Columns[0].ColumnName; // description
                this.breakTypeList.ValueMember = copytable.Columns[1].ColumnName; // value
                this.breakTypeList.SelectedIndex = -1;
Run Code Online (Sandbox Code Playgroud)

我将描述设置为DisplayMember,将值设置为ListBox的ValueMember.现在,根据传递的值,我需要在ListBox中设置所选项.

这是我的代码:

ListBox lb = c as ListBox;
lb.SelectedValue = valuePassedByUser;
Run Code Online (Sandbox Code Playgroud)

这是行不通的.因此,我不得不求助于下面的代码(我循环遍历列表框中的所有项目)

for (int i = 0; i < lb.Items.Count; i++)
            {
                DataRowView dr = lb.Items[i] as DataRowView;
                if (dr["value"].ToString() == valuePassedByUser)
                {
                    lb.SelectedIndices.Add(i);
                    break;
                }
            }
Run Code Online (Sandbox Code Playgroud)

我想知道我的代码中缺少/错误的内容.为什么lb.SelectedValue = valuePassedByUser; 选择错误的项目?

c# listbox asp.net-2.0

8
推荐指数
1
解决办法
3万
查看次数

标签 统计

asp.net-2.0 ×1

c# ×1

listbox ×1