【发布时间】:2011-07-17 11:06:14
【问题描述】:
^, 首先:对不起我的英语=X
我正在创建一个自动完成组件,但遇到了一些问题。
我通过 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 行)让我很痛苦......
我正在尝试发回 ID 和姓名(葡萄牙语中的 Nome),但我不知道如何实现。
使用:
BAssistance AutoComplete from JÖRN ZAEFFERER .
Asp.Net 框架 3.5.
【问题讨论】:
标签: jquery .net asp.net autocomplete jquery-ui-autocomplete