#javascript #asp.net #ajax #listview #autocomplete
#javascript #asp.net #ajax #listview #автозаполнение
Вопрос:
Я пытаюсь реализовать автозаполнение в asp: TextBox, который находится в asp: ListView. Я написал WebService.asmx, который правильно извлекает значения за пределами ListView.
Я попробовал WebService.asmx, который выполняет автозаполнение должным образом, находясь за пределами ListView. Я попытался воспроизвести то же самое, но на этот раз в asp:ListView, ItemTemplate. Я не получаю никакой ошибки, но я также не получаю никаких параметров автозаполнения. Я перепробовал много способов восстановить TextBox.ClientID, но ничего не работает..
///////////////////////////////////////////////////////////// ВНЕ LISTVIEW (это работает)
<script>
var txtSearch = $('#<%= txtUser.ClientID %>');
txtSearch.autocomplete({
source: function (request, response) {
var param = { searchTerm: txtSearch.val() };
$.ajax({
url: "WebServices.asmx/GetLogInUsers",
data: JSON.stringify(param),
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
response(data.d)
},
error: function (result) {
alert(result);
}
});
},
minLength: 3
});
</script>
<asp:TextBox ID="txtUser" runat="server" class="form-control"></asp:TextBox>
/////////////////////////////////////////////////////////////
ДЛЯ LISTVIEW
<script>
a) var txtSearch = $("*[id$=lvMyGestionnaires] input[id$=txtLvADID]");
b) var txtSearch = $("*[id=lvMyGestionnaires] input[id*=txtLvADID]");
c) var txtSearch = $("*[id=lvMyGestionnaires] input[id=txtLvADID]");
d) var txtSearch = $("*[id*=lvMyGestionnaires] input[id*=txtLvADID]");
e) var txtSearch = $('#<%=lvMyGestionnaires.ClientID %> .txtLvADID');
f) var txtSearch = $('#<%=lvMyGestionnaires.ClientID %> input.txtLvADID');
g) var txtSearch = $('*[id$="lvMyGestionnaires"] input.txtLvADID');
txtSearch.autocomplete({
source: function (request, response) {
var param = { searchTerm: txtSearch.val() };
$.ajax ({
url: "WebServices.asmx/GetLogInUsers",
data: JSON.stringify(param),
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
response(data.d)
},
error: function (result) {
alert(result);
}
});
},
minLength: 3
});
</script>
<asp:TextBox ID="txtUsers" runat="server" CssClass="txtLvADID"></asp:TextBox>
В первой половине результата отображается автозаполнение, где, как только вы вводите по крайней мере 3 буквы, запускается автозаполнение и отображается список пользователей.
Во второй половине я перепробовал множество способов извлечения данных из текстового поля от A до G, вдохновленный тем, что я искал в Интернете.
Комментарии:
1. Находится ли ваш Ajax-код вне Listview? Кроме того, добавьте класс css в textbox, а затем попробуйте использовать этот селектор классов css
2. Ajax находится за пределами ListView, а CSS-класс для этого текстового поля — «txtLvADID»
3. Попробуйте использовать простой селектор классов css, например
$('.txtLvADID').autocomplete({..})
4. Это по-прежнему не имеет никакого значения. Есть ли способ протестировать / отладить Javascript / ajax?
5. Вы можете написать
debugger;
инструкцию в своем коде javascript, а затем обновить браузер, запустить инструменты разработчика, нажав клавишу F12, а затем выполнить действие, которое приведет к приостановке выполнения кода в инструкции debugger, и с этого момента вы сможете выполнять построчную отладку.