【发布时间】:2020-05-19 18:46:27
【问题描述】:
我正在开发 客户选择 模块,该模块将在打字时autocomplete。似乎Select2.js 可以完成这项工作,我已经设法填充了我的dropdownlist,但是在后端(.cs 文件)上使用了一个简单的数据绑定。
问题是,我只处理 15 位客户的样本数据,所以性能还不错,我预计会有近 2000 位客户的实际数据,所以仅仅通过绑定就会搞砸性能。
这是我的select2.js的绑定事件和实现代码
.aspx 文件:
<asp:DropDownList runat="server" ID="ddlCustomers" CssClass="form-control" async="">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
.cs 文件:
protected void BindDropDownCustomers()
{
DataTable dt = SharedClass.getAPI("CustomerProfile_All"); //Returns Data from Webservice
DataColumn newColumn = new DataColumn();
//just formating the display
newColumn.ColumnName = "FullName";
newColumn.DataType = System.Type.GetType("System.String");
newColumn.Expression = "Cust_Last_Name+', '+Cust_First_Name";
dt.Columns.Add(newColumn);
ddlCustomers.DataTextField = "FullName";
ddlCustomers.DataValueField = "SmartCardID";
ddlCustomers.DataSource = dt.DefaultView;
ddlCustomers.DataBind();
ddlCustomers.Items.Insert(0, new ListItem("Select Customer", ""));
}
select2.js 脚本:
$('#<%= ddlCustomers.ClientID %>').select2({
placeholder: "Select customer",
minimumResultsForSearch: 2,
minimumInputLength: 3,
allowClear: true
});
我想要这样的东西,在用户输入至少 3 个字符后,将执行查询并获取将填充 dropdownlist 并同时限制或优化显示的所有相关数据。
【问题讨论】: