2014-07-21 50 views
0

我想在文本框中实现自动完成功能。下面是一个获取用户键入的字符串的方法。选择唯一的数据后,我想要将ID &值也保存在数据库中,但我不知道如何处理这个只返回值为JSON的代码。通过Json在MVC4中实现自动完成文本框

public ActionResult BrokerSearch(string broker) { 
    //Get BrokerName from database 

    var drpList = HelperClass.GetBrokerDropDownValues("brokerCompanyName"); 
    //var dlist = drpList.ToList().Find(x => x.DropDownListValue.Contains(broker)); 
    //List<String> arr = drpList.Select(c => c.DropDownListValue.ToString()).ToList(); 
    List <String> arr = drpList.Select(c = > new { 
     c.DropDownListValue, c.DropDownListId 
    }.ToString()).ToList(); 

    return Json(arr.Where(t = > t.StartsWith(broker)), JsonRequestBehavior.AllowGet); 

} 

我的JavaScript低于:

$("#brokerCompanyName").autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: baseurl + "/Policy/BrokerSearch", 
      type: "POST", 
      dataType: "json", 
      data: { 
       broker: request.term 
      }, 
      success: function (data) { 
       if (data != null && data != '') { 
        response($.map(data, function (item) { 
         return { 
          label: item, 
          value: item 
         }; 
        })) 

       } else { 
        $('ul[class*=ui-autocomplete]').hide(); 
       } 
      } 
     }) 
    }, 
    minLength: 1, 
    cache: false, 
    select: function (event, ui) { 
     if (ui != null && ui.item != null) { 

      $("#brokerCompanyName").val(ui.item.value); 
     } 
    } 
}); 
+1

什么给你的麻烦? – Mathletics

+0

我不知道如何提取选定的值 – Javaid

回答

-1
<script> 
    $(function() { 
     $("#brokerCompanyName").autocomplete({ 

      source: function (request, response) { 

       $.ajax({ 
        url: "/Policy/BrokerSearch", 
        type: "POST", 
        dataType: "json", 
        data: { term: request.term }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item.Text, value: item.Value }; 
         })) 
        } 
       }) 
      }, 
      messages: { 
       noResults: "", results: "" 
      } 
     }); 
    }); 

</script> 
+0

的ID,而这可能会回答你至少应该给你的答案添加一些解释的问题。 – Erik