0

asp.net の ListBox コントロールに問題があります。次のコードを使用します。

List<ListItem> users = new List<ListItem>();
foreach (DataRow dr in dtUsers.Rows)
{
     users.Add(new ListItem(dr["name"].ToString(), dr["userID"].ToString()));
}
lb_users.DataSource = users;
lb_users.DataBind();

ユーザーは次のもので構成されます。

ListItem("Hans", "1")
ListItem("Janus", "2")
ListItem("Michael", "3")

ただし、ListBox (lb_users) にバインドされたリストアイテムを書き出すと、次のようになります。

ListItem("Hans", "Hans")
ListItem("Janus", "Janus")
ListItem("Michael", "Michael")

次の ListBox コードを使用します。

<asp:ListBox ID="lb_users" runat="server" SelectionMode="Multiple" ClientIDMode="Static" />

これがなぜなのか、またはそれを修正する方法を誰かが説明できますか?

ありがとう、

/ハンス

4

3 に答える 3

1

データ テキストと値フィールドを設定する必要があります。たとえば、次のようになります。

lbl_users.DataSource = users;
lbl_users.DataValueField = "userID";
lbl_users.DataTextField = "name";
lbl_users.DataBind();
于 2013-06-26T15:39:16.527 に答える