2016-06-30 1 views
1

Как заполнить выпадающий список из таблицы базы данных, используя вызов ajax для контроллера? Я пробовал это.Как заполнить таблицу базы данных формы выпадающего списка?

AJAX вызова

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "GetDropDown", 
     data: '{}', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (r) { 
      alert("success"); 
      $.each(r.d, function() { 
       alert("error"); 
      }); 
     } 
    }); 
}); 

Controller Код:

public static Shelf<ShelfItems> GetDropDown() 
     { 
      string query = "SELECT StoreID"; 
      string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 
      using (SqlConnection con = new SqlConnection(constr)) 
      { 
       using (SqlCommand cmd = new SqlCommand(query)) 
       { 
        List<ListItem> customers = new List<ListItem>(); 
        cmd.CommandType = CommandType.Text; 
        cmd.Connection = con; 
        con.Open(); 
        using (SqlDataReader sdr = cmd.ExecuteReader()) 
        { 
         while (sdr.Read()) 
         { 
          customers.Add(new ListItem 
          { 
           Value = sdr["CustomerId"].ToString(), 
           Text = sdr["Name"].ToString() 
          }); 
         } 
        } 
        con.Close(); 

       } 
      } 
      return customers; 
     } 

Модель:

public class Shelf 
     { 
      public string StoreID { get; set; } 
      public string ShelfName { get; set; } 
      public string MinTemperature { get; set; } 
      public string MaxTemperature { get; set; } 
     }  
+0

ваш Аякса вызов запуска ваш метод .. ?? –

+0

NO @ user2362008 – user2362008

+0

У вас ajax Вызов вашего URL-адреса Неверный Вы должны указать его как имя_контроллера/метод, т. Е. YourControllerName/GetDropDown –

ответ

1

исправить запрос на выборку, как

string query = "SELECT CustomerId,Name From yourTableName"; 
1

использовать это: В Html:

 $.ajax({ 
         type: "GET", 
         url: '@Url.Action("AllCustomer", "Customers")', 
         contentType: "application/json;charset=utf-8", 
         data: JSON.stringify(), 
         dataType: "json", 
         success: function(data) { 
          $('#customers').empty().append('<option value="">---Select---</option>'); 
          $.each(data, function(index, value) { 
           $('#customers').append($('<option />', { 
            value: value.Id, 
            text: value.Name 
           })); 
          }); 
         }, 
        }); 

в действии:

public ActionResult AllCustomer() 
{ 
    return Json(db.Customers.ToList(), JsonRequestBehavior.AllowGet); 
} 

Теперь редактировать на вас есть способ

1
$.ajax({ 
     type: "GET", 
     url: '/ControllerName/ActionName', 
     success: function (data) { 
      $('#customers').empty().append('<option value="">--Select---</option>'); 
      $.each(data, function (index, value) { 
       $('#customers').append($('<option />', { 
        text: value.StoreID 
       })); 
      }); 
     }, 
    }); 

В контроллере

public virtual JsonResult GetDropDown() 
    { 
     string query = "SELECT StoreID"; 
     string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 
     List<ListItem> customers = new List<ListItem>(); 
     using (SqlConnection con = new SqlConnection(constr)) 
     { 
      using (SqlCommand cmd = new SqlCommand(query)) 
      { 

       cmd.CommandType = CommandType.Text; 
       cmd.Connection = con; 
       con.Open(); 
       using (SqlDataReader sdr = cmd.ExecuteReader()) 
       { 
        while (sdr.Read()) 
        { 
         customers.Add(new ListItem 
         { 
          Value = sdr["CustomerId"].ToString(), 
          Text = sdr["Name"].ToString() 
         }); 
        } 
       } 
       con.Close(); 

      } 
     } 
     return Json(customers, JsonRequestBehavior.AllowGet); 
    }