リスト ボックスにテキストと値の両方を入力する方法があるかどうか知りたいです。テキストビットは簡単ですが、値が必要なので、ユーザーにその中の何かを選択させ、ボタンを押して選択した値を取得し、SQL クエリを使用して残りを実行できるようにします。
テキストを入力するためのこれまでの私のコードは次のとおりです。
listAllLessons.Items.Add(detail);
ループで実行され、データベースから入力されます。
ありがとう
これは、Web フォームで行うことができます。
HTML 側:
<asp:DropDownList ID="ddlList"
runat="server" />
<br />
<asp:Button ID="btnSubmit"
runat="server"
OnClick="btnSubmit_Click"
Text="Click Me" />
コードビハインド:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Generate 20 items
foreach(var count in Enumerable.Range(1, 20))
{
var newItem = new ListItem();
newItem.Value = count.ToString();
newItem.Text = "Item " + count.ToString();
ddlList.Items.Add(newItem);
}
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
//Gets the selected value
var selectedValue = ddlList.SelectedValue;
System.Diagnostics.Debugger.Break();
}
次のようにアイテムを連結してみましたか?
while (reader.Read())
{
ListBox1.Items.Add(reader[0].ToString() + "\t" + reader[1].ToString());
}
これを試してください:
while (reader.Read())
{
ListItem li = new ListItem(Convert.ToString(reader["test"]), Convert.ToString(reader["value"]));
ListBox1.Items.Add(li);
}
これは私にとってはうまくいきました。
dt = db.GetAllEmployeeForManagement();
foreach (DataRow item in dt.Rows)
{
ListItem li = new ListItem(Convert.ToString(item["Name"]), Convert.ToString(item["EmployeeID"]));
if (!ListBox1.Items.Equals(li.Text))
{
ListBox1.Items.Add(li);
}
}
ここで、dt は実際には Datasource の参照名なので、非常に簡単です。