asp.net mvc2 выбрать значение из базы данных в соответствии со значением списка - PullRequest
2 голосов
/ 23 августа 2011

Я использую asp.net mvc2.У меня есть список и текстовое поле, когда я выбираю элемент из списка, соответствующее значение этому элементу должно появиться в текстовом поле из базы данных.

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Вы должны использовать JavaScript для изменения выбора списка дескриптора.

И, читая об Ajax, нужно получить данные из БД без перезагрузки страницы.

Добавить

Пример, как вы можете обрабатывать изменения выбора списка.

@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"})
<script type="text/javascript">
    function actch() {
        alert(document.getElementById("namid").value);
    }
</script>

Значение "document.getElementById (" namid "). Value" содержит выбранную вами опцию.

Вы должны отправить это значение на сервер и получить запрос

@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"})
<script type="text/javascript">
    function actch() {
                 $.ajax({
                      url: "your url",
                      type: "POST",
                      data: "id = " + document.getElementById("namid").value,
                      success: function (data) {
                           // action on success  

                           document.getElementById("TextBoxId").value = data;              
                      },
                      error: function (jqXhr, textStatus, errorThrown) {
                           // action on fail                              
                      },
                      complete: function () {

                      }
                  });
    }
</script>

Вы должны написать часть запроса к серверу и настроить ajax.(Я использовал jQuery)

Добавлено: Часть запроса к серверу (пример)

    [HttpPost]
    public MvcHtmlString Detail(string id)
    {
        var d = _db.GetVehicle(Convert.ToInt32(id));
        var sb = new StringBuilder();
        sb.AppendLine(string.Format("Type: {0}</br>", d.Type));
        sb.AppendLine(string.Format("Brand: {0}</br>", d.Brand));
        sb.AppendLine(string.Format("Model: {0}</br>", d.Model));
        sb.AppendLine(string.Format("Number: {0}</br>", d.Number));
        sb.AppendLine(string.Format("Year: {0}</br>", d.Year));
        sb.AppendLine(string.Format("Cost: {0}</br>", d.Cost));
        return new MvcHtmlString(sb.ToString());
    }

URL выглядит так: MyController / Detail /

DATAдля ajax: "id =" + document.getElementById ("namid"). value

PS Некоторые редактируют / портят мой ответ, и он не помечен (

0 голосов
/ 23 августа 2011

Ваш вопрос немного расплывчат, но в основном это то, как это можно сделать:

Вы можете опубликовать значение списка в событии изменения с помощью jquery (или любой другой библиотеки JS по вашему выбору),Затем контроллер возвращает значение, которое вы затем помещаете в текстовое поле.

Check http://api.jquery.com/jQuery.post/

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