2010-01-19 83 views

回答

4

聽起來像你需要添加一個標籤爲「其他」的單選按鈕。當用戶單擊單選按鈕時,將出現一個文本框,允許用戶輸入一個新值,您可以將其保存到數據庫並在下拉菜單中顯示。

編輯:
快速片段,使使用JavaScript控制:

<script language="javascript" type="text/javascript"> 
     function radioclicked() { 
     textObj = document.getElementById('<NAME OF TEXT BOX'); 
     textObj.disabled = false; 
     }  
    </script> 

您可以使用複選框代替單選按鈕,使enabled屬性進行切換。

要完全隱藏文本框,那麼你將不得不看看jQuery/Ajax。

+0

我是全新的MVC和網絡應用程序,我的經驗是在WinForms。如何在單擊單選按鈕時顯示文本框? – RememberME 2010-01-19 19:45:33

+0

我從來沒有使用過jQuery。那是需要的嗎? – RememberME 2010-01-19 20:09:02

+0

如果你想控制可見性,你可以使用jQuery。或者,如果您只想啓用禁用控件,則可以使用JavaScript。 – 2010-01-19 20:21:18

0

此外,組合框還允許用戶除了從列表中選擇外還輸入值。

0

我的MVC並非如此,但我認爲這仍然適用,因爲MVC只是模型視圖控制器。 如果您在窗體上投下可見= true,並且窗體上的文本框visible = false,會出現什麼情況?

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
    onselectedindexchanged="DropDownList1_SelectedIndexChanged"> 
</asp:DropDownList> 
<asp:TextBox ID="TextBox1" runat="server" Visible="False"></asp:TextBox> 

填寫您的下拉:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      List<int> s = Enumerable.Range(1, 10).ToList(); 
      DropDownList1.DataSource = s; 
      DropDownList1.DataBind(); 

      DropDownList1.Items.Add("Other"); 
     } 
    } 

添加一個事件來處理,如果有人選擇其他。如果他們確實使文本框可見:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    switch (this.DropDownList1.SelectedItem.Text) 
     { 
     case "Other": 
      this.TextBox1.Visible=true; 
      break; 
     default: 
      this.TextBox1.Visible=false; 
      break; 
     } 
} 

現在您可以輸入您的值並重新存儲回數據庫。

1

爲什麼我們不能使用像www.combodropdown.info這樣的輕量級加載器來達到這個目的?如果您的應用程序已經引用jQuery,您甚至可以考慮使用jQuery的AutoComplete插件。

相關問題