^ первой очереди: Извините за мой английский = XВзаимодействия между Asp.Net и автозаполнением (JQuery)
Я создаю автозаполнение и я проводник составляющую меня возник некоторые проблемы.
Я передаю через ajax некоторые параметры моей странице aspx.
JQuery Код:
/* AutoComplete */
$(function() {
$('.ACCascata').bind('keyup', function() {
// Criação do apontamento
var tipoObj = $(this).attr("tipo").toString();
$(this).autocomplete({
source: function (request, response) {
$.ajax({
url: "AutoComplete.aspx",
dataType: "json",
data: {
tipo: tipoObj, //Apontamento
q: request.term //Item digitado no input
},
success: function (event, ui) {
response(event);
},
error: function (xhr, ajaxOptions, thrownError) {
//alert(xhr.status);
//alert(thrownError);
}
});
}
});
});
});
.Net код
public class AutocompleteItem
{
private String id;
public String Id
{
get { return id; }
set { id = value; }
}
private String value;
public String Value
{
get { return this.value; }
set { this.value = value; }
}
}
protected void Page_Load(object sender, EventArgs e)
{
switch (Request.QueryString["tipo"])
{
case "pais":
this.BuscaPaises(Request.QueryString["q"]);
break;
case "estado":
this.BuscaEstados(Request.QueryString["q"]);
break;
case "cidade":
this.BuscaCidades(Request.QueryString["q"]);
break;
}
}
private void BuscaPaises(string query)
{
try
{
AcessoDados BuscaLocal = new AcessoDados();
BuscaLocal.OpenConnection();
String SqlSelect = "SELECT ID, Nome FROM Paises Where Nome like '%" + query + "%'";
BuscaLocal.Select(SqlSelect);
//ArrayList resultado = new ArrayList();
ArrayList result = new ArrayList();
while (BuscaLocal.Records.Read())
{
AutocompleteItem autoCompletar = new AutocompleteItem();
autoCompletar.Id = BuscaLocal.Records["ID"].ToString();
autoCompletar.Value = BuscaLocal.Records["Nome"].ToString();
//resultado.Add(autoCompletar);
result.Add(BuscaLocal.Records["Nome"].ToString());
}
BuscaLocal.CloseConnection();
JavaScriptSerializer js = new JavaScriptSerializer();
//string jsonResult = js.Serialize(resultado);
string jsonResult = js.Serialize(result);
Response.Write(String.Format("{0}", jsonResult));
}
catch (Exception falhaSelect)
{
throw falhaSelect;
}
}
К сожалению, португальский = X
код выше "работает", но только посылает имя (конечно, это единственное, что я прохожу). Прокомментированный код (3 строки) - это то, что дает мне боль ...
Я пытаюсь отправить обратно идентификатор и имя (ном на португальском языке), но я не знаю, как это достичь.
с помощью:
BAssistance AutoComplete from JÖRN ZAEFFERER .
Asp.Net FrameWork 3.5.
Спасибо за образец кода. Я буду проверять и видеть результаты. ^.^ –
Джош М. Еще раз спасибо за ваш ответ^_ ^. Могу ли я спросить, возможно ли это только при создании «ScriptMethod/WebMethod "? PS: Я спрашиваю об этом, потому что раньше я никогда не «играл» с «ScriptMethod/WebMethod», и я точно не знаю, как это сделать. (я трачу 2 ч, пытаясь: X любой свет указывает мне?). PS2: Извините, я действительно новичок в разработке Q.Q –
Я добавил несколько подробностей и ссылку для чтения. Но код, который я предоставил, составляет 90% от того, что вам нужно. Вы можете сделать тестовую услугу «HelloWorld», чтобы убедиться, что все подключено правильно. –