我有一個autocomplete
textbox
它正是我想要搜索的過濾器。但現在我想的是,自動完成文本框不顯示文本框內點擊結果
如果用戶沒有任何類型進入
textbox
,只是點擊textbox
。它應該顯示所有的結果。這是可能的嗎?
以下是我的代碼。
$(document).ready(function() {
SearchText();
});
function SearchText() {
$("#txt712").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Frm_Agreement_Master.aspx/GetAutoCompleteData",
data: "{'username':'" + extractLast(request.term) + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
},
focus: function() {
return false;
},
select: function (event, ui) {
var terms = split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push("");
this.value = terms.join(", ");
return false;
}
});
$("#txt712").bind("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).data("autocomplete").menu.active) {
event.preventDefault();
}
})
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
}
另請參閱我從哪裏獲得參考的鏈接。
UPDATE
服務器端代碼
[WebMethod]
public static List<string> GetAutoCompleteData(string username)
{
List<string> result = new List<string>();
using (OracleConnection ObjPriCon = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConn"].ToString()))
{
using (OracleCommand cmd = new OracleCommand("select distinct survey_area_7_12 FROM xxcus.xxacl_pn_farming_mst WHERE survey_area_7_12 LIKE '%' || :searchtext || '%'", ObjPriCon))
{
ObjPriCon.Open();
cmd.Parameters.AddWithValue(":searchtext", username.ToLower());
OracleDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
result.Add(dr["survey_area_7_12"].ToString());
}
}
return result;
}
}
}
這可以在服務器端完成。我檢查了引用鏈接和'C#執行sql查詢'。通過驗證空的搜索字符串是否修改查詢以獲取所有結果(選擇*,而不是選擇不同),並將所有結果發送到前端並填充 – Mehavel
@Mehavel:好的,你能幫我解決一些代碼嗎?我無法想象究竟要做什麼。 – BNN
@Div:是的,它是有道理的,它會幫助我更多,如果我得到一些代碼想象在這裏 – BNN