Что я хочу сделать, это получить все электронные письма из столбца Электронная почта таблицы клиентов MS SQL и заполнить их с помощью функции автозаполнения JQuery.Текущая система использует VB.NET 2.0.
Что я сделал, так это получил все электронные письма и поместил их в DataTable, перебрал и поместил их в строку, ограниченную символом ",".Поместите эту строку в скрытую коробку.JQuery извлекает значение из этого скрытого поля и создает массив, используя "array = emails.split (", ");".Вот код.
Он довольно хорошо работает на сервере разработки, поскольку у нас есть только более 2000 записей, но он загружается вечно, когда я помещаю его на живой сервер, где более 80 000 записей.
Front End
<script type="text/javascript">
$(function() {
var emails = $("#EmailList").val();
var emailList = emails.split(",");
$(".email-autocomplete").autocomplete({
source: emailList
});
});
</script>
<asp:TextBox class="email-autocomplete" ID="txtEmailAddress"
runat="server" style="width:300px"></asp:TextBox>
<asp:HiddenField ID="EmailList" runat="server" />
Back End
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
FetchEmailList()
End Sub
Private Sub FetchEmailList()
Dim dt As Data.DataTable = GetCustomers()
Dim i As Integer
Dim _emails As String
For i = 0 To dt.Rows.Count()-1
If IsDBNull(dt.Rows(i).Item("Email")) = False Then
_emails &= dt.Rows(i).Item("Email") & ","
End If
Next
If _emails.length > 0 Then
EmailList.Value = _emails.substring(0,_emails.length-1)
End If
End Sub
Я предлагаю два решения -
Когда я получаю электронные письма с сервера базы данных,Я буду использовать функцию TableToStr и помещу все электронные письма, разделенные символом ",", в одно поле, а VB.NET получит эти значения и поместит их в скрытое поле.Здесь мы можем удалить Looping через datatable в конце.Однако JQuery все еще нужно «разбить» эту строку для построения массива.
Получать электронные письма из БД, собирать JSON и возвращать их в JQuery. (Я сделал это в ASP.NETMVC3 с C #, который довольно легко использовать с помощью «return JSON», но нужно провести некоторые исследования, как это сделать в VB.NET 2.0).
Что является лучшим методом для работы с автозаполнениемкогда наш источник данных довольно большой.