如何在绑定之前更改DropDownList的SelectedValue?

时间:2011-12-12 02:50:14

标签: c# asp.net .net-2.0 formview

基本上我有一个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。由于解释起来太麻烦的原因,我不能只是将数据库更改为接受“男性”或“女性”作为输入。

3 个答案:

答案 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)

我找到了解决此问题的解决方法,因此我将删除此问题。

我将此标记为答案,因为在删除我的问题之前,显然我需要接受一个已接受的答案。 (怪异)