Конечный пользователь добавить значения в выпадающий список?

2

Я заполняю выпадающий список в С# asp.net-MVC из таблицы SQL, используя Linq2Sql. Я хотел бы, чтобы пользователь мог ввести то, что отсутствует в списке, в раскрывающееся меню и добавить его в таблицу. Возможно ли это?

Теги:
asp.net-mvc
drop-down-menu
linq-to-sql

4 ответа

4
Лучший ответ

Похоже, вам нужно добавить радиокнопку с надписью "Другое". Когда пользователь нажимает на переключатель, появляется текстовое поле, которое позволяет пользователю вводить новое значение, которое вы можете сохранить в своей базе данных и отобразить в раскрывающемся списке.

РЕДАКТИРОВАТЬ:
Быстрый фрагмент, позволяющий управлять с помощью JavaScript:

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

Вы можете использовать флажок вместо переключателя, чтобы можно было включить включенное свойство.

Чтобы полностью скрыть текстовое поле, вам нужно будет посмотреть в jQuery/Ajax.

  • 0
    Я новичок в MVC и веб-приложениях, мой опыт работы с WinForms. Как сделать так, чтобы текстовое поле отображалось при нажатии радиокнопки?
  • 0
    Я никогда не использовал JQuery раньше. Это то, что будет нужно?
Показать ещё 1 комментарий
1

Почему мы не можем использовать легкую надстройку, например www.combodropdown.info для этой цели? Вы даже можете рассмотреть плагин AutoComplete из jQuery, если ваше приложение уже ссылается на jQuery.

0

Мой MVC не так, но я предполагаю, что это все еще применяется, поскольку MVC - это просто контроллер представления модели. Что делать, если вы бросаете drop down на вашу форму visible = 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;
        }
}

Теперь вы можете ввести свое значение и снова вернуть обратно в db.

0

Кроме того, combobox позволяет пользователю вводить значение в дополнение к выбору из списка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню