[英]How to get listbox selected item value
我正在使用C#.NET 4.0
我試圖獲取列表框中單個選定項的值。
這是我填充控件的方式:
this.files_lb.DataSource = DataTable object
在我的設計器中,我將file_name指定為DisplayMember,將file_id指定為DisplayValue
在列表框中選擇一個項目后,我嘗試了以下方法來獲取值:
this.files_lb.SelectedValue.ToString()
但它返回的只是"System.Data.DataRowView".
在此鏈接:將列表框中所選項的值作為字符串
有人建議 -
String SelectedItem = listBox1.SelectedItem.Value
但是,當我嘗試這個時,“價值”不是一個選項。
如何從列表框中的單個選定項獲取ValueMember值?
var text = (listBox1.SelectedItem as DataRowView)["columnName"].ToString();
將columnName
替換為要從中獲取數據的列的名稱,該列將與數據源中的列對應。
如果沒有選定項目,請注意空值。
真的應該這么容易; 我在按鈕的點擊事件中有以下內容,以確保我沒有在我腦海中簡化它:
private void button1_Click(object sender, EventArgs e)
{
string selected = listBox1.GetItemText(listBox1.SelectedValue);
MessageBox.Show(selected);
}
結果如下:
看起來你的問題可能是沒有在控件上設置屬性:
如果我取消選擇該框,我會得到與您描述的完全相同的行為。
您可能需要設置列表框的DataValueField。
NewEmployeesLB.DataSource = newEmployeesPersons.DataList.Select(np => new
ListItem() { Text = np.LastName + ", " + np.FirstName, Value = np.PersonID.ToString() }).ToList();
NewEmployeesLB.DataTextField = "Text";
NewEmployeesLB.DataValueField = "Value";
NewEmployeesLB.DataBind();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.