2

基本的に、listBox の .Text 値に文字列を入力し、その .Value 値に int を入力する必要があります。これを行うことにより:

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

これにより、文字列が .Value と .Text の両方に割り当てられます。

GetGlobalUserList() が string[] を返すことがわかったので、上記の動作が発生するのはなぜですか? 多分2D配列に行きますか?そして、それらの結果をリストボックスにバインドする方法は?

4

2 に答える 2

5

オプション 1 そのメソッドが返さstring[]れ、値が pick になるようにしますSelectedIndex

オプション 2 ダミスの回答としてカスタム クラスを作成します。

オプション 3 ADictionary<int, string>で十分です。

Dictionary KeysListBox ValueとのためDictionary 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 に答える