私は、TextBoxにオートコンプリートを追加したいASP.NET 4.5 WebFormアプリケーションを持っています。 jquery-uiを調べていましたが、動作させることができません。ASP.NET JQuery-UIオートコンプリートが動作しない
私はjquery 3.1.1とjquery-ui 1.12.1を使用しています。ここで私のaspxページの頭の部分です。ここで
<asp:TextBox ID="SearchDynamicTxt" runat="server" OnTextChanged="SearchDynamicTxt_TextChanged" AutoPostBack="true" ></asp:TextBox>
が背後にあるコードである:ここで
ASPX
<head runat="server">
<link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#SearchDynamicTxt").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "UserReports.aspx/GetUsers",
data: "{'term':'" + $("#SearchDynamicTxt").val() + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
}
});
});
</script>
</head>
は、テキストコントロールである私は、私が忘れてしまったか、スペルが間違って何かがあると確信している
[WebMethod]
public static string[] GetUsers(string term)
{
List<string> usersList= new List<string>();
string CS= ConfigurationManager.ConnectionStrings["UsersCS"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Name FROM Customers WHERE Name Like '" + term + "%'", con);
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
usersList.Add(reader[0].ToString());
}
}
return usersList.ToArray();
}
が、私にはありません何をどこで知っているか私がコントロールに何かを書き込もうとすると、何も起こりません。一致する可能性のあるユーザーのリストを表示し、そのうちの1つを選択すると、OnTextChangedメソッドを呼び出すことができます。
UPDATE!
これでドロップダウンリストが表示されたので、ユーザーとその選択を選択してOnChangedメソッドをトリガーします。現在、これは起こっていません。 Enterキーを押すか、ページのどこかをクリックしてポストバックを生成し、OnChangedテキストを検出する必要があります。私はこれを変更する必要があると推測しています:
success: function (data)
{
response(data.d);
},
恐らくイベントパラメータなどを追加していますか?私は現在解決策を探していますが、見つけられるまで誰かが答えを知っていれば、それを共有してください。
ありがとうございました!
これらが必要ですか?OnTextChanged = "SearchDynamicTxt_TextChanged" AutoPostBack =テキストボックスに "true"? –