基本上我有一个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是DropDownList的ID。由于解释起来太麻烦的原因,我不能只是将数据库更改为接受“男性”或“女性”作为输入。
答案 0 :(得分: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";
如果您想获得与您的DropDownList相关联的数字,您可以通过SelectedValue获取它。
cbGender.SelectedValue //Returns the 0 or the 1
答案 1 :(得分:0)
您可以更改DropDownList中的项目,使文本为“男性”且值为“0”吗?
答案 2 :(得分:0)
我找到了解决此问题的解决方法,因此我将删除此问题。
我将此标记为答案,因为在删除我的问题之前,显然我需要接受一个已接受的答案。 (怪异)