[英]How do I retrieve values from Html.TextBox MVC 2 asp.net C#?
[英]How can I autocomplete values in a TextBox from SQL Server table in C# with ASP.NET
我有一個SQL表,列名稱為Name
, Ascii_Name
, Alternate Names
。 當用戶從值集中鍵入名稱時,自動完成功能必須相應地顯示值。
例如,如果用戶鍵入“ Aba”,則必須顯示所有以“ Aba”開頭的值,包括“替代名稱”列中的值,這些值不會像abt那樣遵循這種模式。 為了更清楚地說明另一個示例,他輸入Abayah時,必須顯示遵循此模式的所有名稱,包括其他名稱以及abahyahran,abayrafda 。
+------------+------------------+--------------------------------------------------+
| Name | Ascii_Name | Alternate_names |
+------------+------------------+--------------------------------------------------+
| Abat | Abat1 | Abat, Abat1, abt |
| Abayahr | Abayahr1 | Abayahr,Abayahr1, abayahr, abahyahran, abayrafda |
| Abayah | Abayah1 | Abayah,Abayah1, abayahtr, abayahnwer |
| Abath | Abath1 | Abath, Abath1, abatgh, abatdfg |
| Carne | Carnt | Carne, Carnt, canrtrt, carnas |
+------------+------------------+--------------------------------------------------+
我對達成此要求一無所知,對此方向的任何建議或建議或指針將不勝感激。
我不是在要求任何僅代碼指示符或廣泛指導方針來實現這一目標。
您可以將存儲過程或LINQ與Entity Framework
。 這是存儲過程的示例。
存儲過程:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[AutoComplete_Search]
@keyword NVARCHAR(50)
AS
BEGIN
SELECT Name, Ascii_Name, Alternate_names
FROM your_table
WHERE Name LIKE '%' + @keyword + '%' OR Ascii_Name LIKE '%' + @keyword + '%' OR Alternate_names LIKE '%' + @keyword + '%'
END
.cshtml代碼是:
<script type="text/javascript">
$(function () {
$("#txtCustomer").autocomplete({
source: function (request, response) {
$.ajax({
url: '/Home/AutoComplete/',
data: "{ 'keyword': '" + request.term + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data, function (item) {
return item;
}))
},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
},
select: function (e, i) {
$("#hfCustomer").val(i.item.val);
},
minLength: 1
});
});
</script>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<input type="text" id="txtCustomer" name="CustomerName" />
}
這是控制器。
[HttpPost]
public JsonResult AutoComplete(string keyword)
{
using (DatabaseEntities entities = new DatabaseEntities())
{
var records = entities.AutoComplete_Search(keyword).ToList();
return Json(records);
}
}
您可以使用Ajax Control Toolkit。 例:
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods = "true">
</asp:ScriptManager>
<asp:TextBox ID="txtContactsSearch" runat="server"></asp:TextBox>
<cc1:AutoCompleteExtender ServiceMethod="SearchCustomers"
MinimumPrefixLength="2"
CompletionInterval="100" EnableCaching="false" CompletionSetCount="10"
TargetControlID="txtContactsSearch"
ID="AutoCompleteExtender1" runat="server" FirstRowSelected = "false">
</cc1:AutoCompleteExtender>
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> SearchCustomers(string prefixText, int count)
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager
.ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select ContactName from Customers where " +
"ContactName like @SearchText + '%'";
cmd.Parameters.AddWithValue("@SearchText", prefixText);
cmd.Connection = conn;
conn.Open();
List<string> customers = new List<string>();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
customers.Add(sdr["ContactName"].ToString());
}
}
conn.Close();
return customers;
}
}
}
https://www.aspsnippets.com/Articles/AJAX-AutoCompleteExtender-Example-in-ASPNet.aspx
https://ajaxcontroltoolkit.devexpress.com/AutoComplete/AutoComplete.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.