2011-12-12 33 views
0

基本上我有一个Customers表中的字段为Gender之一,我在做一个表单,允许用户更新客户信息,在这种情况下的性别。性别的默认SelectedValue是“男性”或“女性”,我想在将其实际绑定到数据库之前将“男性”更改为0,将“女性”更改为1。我得到尽可能有这个背后我的代码:如何在绑定之前更改DropDownList的SelectedValue?

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

假设你使用的是组合框(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 
+0

我没有使用组合框,因为它允许用户输入除“男性”或“女性”之外的其他内容 – jon2512chua

+0

如果用户可以输入其他内容,那么您会给它什么值?如果你不知道,推动它的价值会有问题。如果你知道,为什么不直接将它添加到你的列表中? –

+0

不太确定我是否能得到你。用户将只有2个选项可供我的DropDownList中的性别字段男性或女性选择。我选择通过ComboBox使用DropDownList的原因是为了让我知道用户只能给我两种值,使我无法编写大量不必要的验证。 – jon2512chua

0

可以更改项目在你的DropDownList,从而使文本是“男性”和值“0”?

+0

不,我不得不接受一个字符串作为输入值。 – jon2512chua

0

我发现,规避了这个问题,所以我会删除这个问题,一种解决方法。

我这标志着作为答案显然我需要有一个公认的答案之前,我可以删除我的问题。 (怪异)

+0

如果你想回答你的问题,我编辑了我以前的帖子 –

相关问题