如何在绑定前更改下拉列表的SelectedValue
本文关键字:下拉列表 SelectedValue 绑定 | 更新日期: 2023-09-27 18:17:36
基本上,我有一个Customers
表,其中一个字段是Gender
,我正在制作一个表单,允许用户更新客户信息,在本例中是性别。性别的默认SelectedValue是"男性"或"女性",我想在实际将"男性"绑定到数据库之前将"男性"更改为0,"女性"更改为1。我把这个作为我的代码:
protected void fmvCustomerDetails_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
if (fmvCustomerDetails.editGender.val.Equals("Male"))
fmvCustomerDetails.editGender.val = 0;
}
fmvCustomerDetails是FormView对象的ID, editGender是下拉列表的ID。由于解释起来太麻烦的原因,我不能直接更改数据库以接受"Male"或"Female"作为输入。
您可以更改下拉列表中的项目,使文本为"Male",值为"0"吗?
我已经找到了一个解决这个问题的方法,因此我将删除这个问题。
我把这个标记为答案,因为在我删除我的问题之前,我显然需要有一个被接受的答案。(奇怪的)
假设你正在使用一个组合框(DropDownList只是combobox类的DropDownStyle),你应该使用DisplayMember作为性别(男性,女性)和ValueMember作为0和1。
这样,您就不必在将值推送到数据库之前进行任何更改。你可以绑定你的字段。
你可以创建一个ArrayList,其中既包含想要显示的值,也包含想要显示的字符串。然后将值绑定到ValueMember,并将字符串绑定到DisplayMember。
ArrayList arrGender = new ArrayList();
arrGender.Add(new { id = 0, sex = "Male" });
arrGender.Add(new { id = 1, sex = "Female" });
cbGender.DataSource = arrGender;
cbGender.DisplayMember = "sex";
cbGender.ValueMember = "id";
如果你想获得与下拉列表相关联的数字,你可以通过SelectedValue获得它。
cbGender.SelectedValue //Returns the 0 or the 1