Конечный пользователь добавить значения в выпадающий список? - PullRequest
2 голосов
/ 19 января 2010

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

Ответы [ 4 ]

4 голосов
/ 19 января 2010

Похоже, вам нужно добавить переключатель с надписью «Другое».Когда пользователь нажимает переключатель, появляется текстовое поле, которое позволяет пользователю ввести новое значение, которое вы можете сохранить в своей БД и отобразить в раскрывающемся списке.1005 * Быстрый фрагмент для включения элемента управления с использованием JavaScript:

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

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

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

1 голос
/ 14 декабря 2010

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

0 голосов
/ 19 января 2010

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

Теперь вы можете ввести свое значение и восстановить его обратно в БД.

0 голосов
/ 19 января 2010

Также комбинированный список позволит пользователю вводить значение в дополнение к выбору из списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...