2015-06-10 2 views
1

Это мой взгляд, где я использовал элемент управления автозаполнения jquery.Показать выход sql-запроса в jQuery autocomplete

<script type="text/javascript"> 
    $(function() { 
    var availableTags = [ 
     "ActionScript", 
     "AppleScript", 
     "Asp", 
     "BASIC", 
     "C", 
     "C++", 
     "Clojure", 
     "COBOL", 
     "ColdFusion", 
     "Erlang", 
     "Fortran", 
     "Groovy", 
     "Haskell", 
     "Java", 
     "JavaScript", 
     "Lisp", 
     "Perl", 
     "PHP", 
     "Python", 
     "Ruby", 
     "Scala", 
     "Scheme" 
    ]; 
    $("#tags").autocomplete({ 
     source: availableTags 
    }); 
    }); 
    </script> 
<div> 
    <input id="tags"> 
</div> 

Здесь я указал параметры автозаполнения вручную. Но я должен отображать только BrandNames из следующего SQL-запроса.

select BrandName from BrandMaster order by BrandName 

Я должен сделать это в MVC4. Пожалуйста помоги. Поскольку я новичок, пожалуйста, не проголосуйте меня, если я ошибаюсь, задавая вопрос.

Это мой контроллер.

public class HomeController : Controller 
    { 
     string connString = "Data Source=DEVELOPER1;Initial Catalog=FR8DemoDB;Integrated Security=True"; 
     string commString = ""; 

     public ActionResult Index() 
     { 
      List<Products> listTemp = new List<Products>(); 

      List<string> list = new List<string>(); 
      commString = "select BrandName from BrandMaster order by BrandName"; 
      DataTable dataTable = GetDataTable(commString); 

      foreach (DataRow item in dataTable.Rows) 
      { 
       listTemp.Add(new Products() 
       { 
        BrandName = item["BrandName"].ToString() 
       }); 
      } 

      return View(listTemp); 
     } 

     public DataTable GetDataTable(string commString) 
     { 
      DataTable dataTable = new DataTable(); 

      using (SqlConnection conn = new SqlConnection(connString)) 
      { 
       conn.Open(); 
       using (SqlCommand comm = new SqlCommand(commString, conn)) 
       { 
        SqlDataReader sqlDataReader = comm.ExecuteReader(); 
        dataTable.Load(sqlDataReader); 
       } 
      } 
      return dataTable; 
     } 
    } 

    public class Products 
    { 
     public string BrandName { get; set; } 
    } 
} 
+1

Что именно вы возникли проблемы с? –

+0

дать свой вид и метод контроллера для sql-запроса –

ответ

0

Посмотреть

@Html.TextBox("searchid", "", new {@placeholder = "Search Store..."}) 

Контроллер

public JsonResult Search(string term) 
    { 
     var ent = new Entities(); 
     var Stores = ent.BrandMaster.Where(x=>x.BrandName.Contains(term)).OrderBy(x=>x.BrandName).ToList(); 
     return Json(Stores, JsonRequestBehavior.AllowGet); 
    } 

Jquery

$(document).ready(function() { 
     $("#searchid").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: "/Menu/Search", 
        type: "get", 
        dataType: "json", 
        data: { term: request.term }, 
        success: function(data) { 
         response($.map(data, function(item) { 
          return { id: item.Id, value: item.BrandName }; 
          }) 
         ); 
        } 

       }); 
      }, 
      select: function (event, ui) { 
       window.location = '/Home/ActionName/'+ ui.item.id ; 
       } 

     }); 
    }) 

DEMO

+0

Я создал свой контроллер, где я создал datatable. Как я могу вам это показать? – Amit

+0

Проверьте это, и это должно сработать, оно работает для меня для демонстрации. http://bachateraho.com –

+0

Я создал свой контроллер таким образом, пожалуйста, проверьте – Amit

Смежные вопросы