2011-12-12 67 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

如果你想回答你的問題,我編輯了我以前的帖子 –

相關問題