gpt4 book ai didi

javascript - 如果自动完成文本框中的数据很长,则添加滚动

转载 作者:行者123 更新时间:2023-11-28 15:04:21 25 4
gpt4 key购买 nike

我已经实现了自动完成多选文本框的功能,并且效果非常好。

所以现在我的问题是,如果我有 3000 条记录,并且在文本框中输入 A,则列表中会开始出现一个很长的值列表。

看看下面的屏幕截图。

Img

那么,有什么方法可以通过向列表添加滚动来减少。下面是我的完整代码。

ASPX

<asp:TextBox ID="txt712" runat="server" Width="80%"></asp:TextBox>

Jquery

$(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 () {
// prevent value inserted on focus
return false;
},
select: function (event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
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();
}
}

CS

[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);
OracleDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
result.Add(dr["SURVEY_AREA_7_12"].ToString());
}
}
return result;
}
}
}

让我知道如何添加 Scroll 使其不会重叠

最佳答案

使用 JQuery UI 自动完成功能,您可以执行类似 this 的操作:

.ui-autocomplete {
max-height: 100px;
overflow-y: auto;
overflow-x: hidden;
}

关于javascript - 如果自动完成文本框中的数据很长,则添加滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39785415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com