2

基本上我需要用字符串填充listBox 的.Text 值,用int 填充它的.Value 值。通过做这个:

lbUsers.DataSource = new UserManagerBO().GetGlobalUserList();
lbUsers.DataBind();

这会为 .Value 和 .Text 分配一个字符串。

现在我知道 GetGlobalUserList() 返回一个 string[] 这就是我得到上述行为的原因,那么如何返回 int 值和字符串值呢?也许去二维数组?然后如何将这些结果绑定到列表框?

4

2 回答 2

5

选项 1 让该方法返回string[]并为值选择SelectedIndex

选项 2 创建一个自定义类作为 Damith 的答案。

选项 3 ADictionary<int, string>就足够了。

Dictionary KeysListBox ValueDictionary ValuesListBox Text

假设这是您的方法返回的字典

//Adding key value pair to the dictionary
Dictionary<int, string> dStudent = new Dictionary<int, string>();
dStudent.Add(0, "Eena");
dStudent.Add(1, "Meena");
dStudent.Add(2, "Deeka");
dStudent.Add(3, "Tom");
dStudent.Add(4, "Dick");
dStudent.Add(5, "Harry");
dStudent.Add(6, "Yamla");
dStudent.Add(7, "Pagla");
dStudent.Add(8, "Dewana");
dStudent.Add(9, "Guru");
dStudent.Add(10, "Sholay");

第2步:

现在是时候将字典对与您的列表框绑定了。以下代码绑定到列表框。

//binding to the list
lst.DataTextField = "Value";
lst.DataValueField = "Key";
lst.DataSource = dStudent;
lst.DataBind();
于 2012-05-31T07:39:25.183 回答
2

使用用户属性创建自定义类。这可以在您与全球用户打交道时重新使用

public class CustomClass()
{
    public int ID { get; set; }
    public int Name  { get; set; }
}

从 中返回CustomClass对象集合GetGlobalUserList(),您需要更改GetGlobalUserList方法的签名和逻辑。你这样做的人,

lbUsers.DataSource = new UserManagerBO().GetGlobalUserList();

设置DataTextFieldDataValueField你的列表框

lbUsers.DataTextField  = "Name";
lbUsers.DataValueField = "ID";
lbUsers.DataBind();
于 2012-05-31T07:45:12.943 回答