asp.net listBox文本/值

时间:2012-05-31 07:30:28

标签: c# asp.net data-binding listbox

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

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

这将为.Value和.Text。

分配一个字符串

现在我知道GetGlobalUserList()返回一个字符串[],这就是为什么我得到上面的行为,那么如何返回int值和字符串值?也许去2D阵列?然后如何将这些结果绑定到列表框?

2 个答案:

答案 0 :(得分:5)

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

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

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

Dictionary Keys的{​​p> ListBox ValueDictionary Values的{​​{1}}。

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

ListBox Text

第2步:

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

//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");

答案 1 :(得分: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();