功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择
1.建立一aspx页面,html代码
<HT ml>
<CABEZA>
<título>Formulario web1</título>
<SCRIPT idioma="javascript">
//城市------------------------------
función ciudadResultado()
{
var ciudad=document.getElementById("TextBox1");
WebForm1.GetCityList(ciudad.valor,get_city_Result_CallBack);
}
función get_city_Result_CallBack(respuesta)
{
si (respuesta.valor! = nulo)
{
//depurador;
document.getElementById("DropDownList1").style.display="bloque";
document.getElementById("DropDownList1").length=0;
var ds = respuesta.valor;
if(ds!= null && typeof(ds) == "objeto" && ds.Tables!= null)
{
for(var i=0; i<ds.Tables[0].Rows.length; i++)
{
var nombre=ds.Tables[0].Rows[i].ciudad;
var id=ds.Tables[0].Rows[i].cityID;
document.getElementById("DropDownList1").options.add(new Option(nombre,id));
}
}
}
demás
{
document.getElementById("DropDownList1").style.display="none";
}
devolver
}
función obtener datos()
{
var provincia=document.getElementById("DropDownList1");
var pindex = provincia.selectedIndex;
var pValue = provincia.opciones[pindex].valor;
var pText = provincia.opciones[pindex].text;
document.getElementById("<%=TextBox1.ClientID%>").innerText=pText;
}
</SCRIPT>
</CABEZA>
<cuerpo>
<id de formulario="Form1" método="publicación" runat="servidor">
<asp:TextBox ID="TextBox1" runat="servidor"></asp:TextBox>
<br>
<asp:DropDownList ID="DropDownList1" runat="servidor" Ancho="192px" style="display:none"></asp:DropDownList>
</formulario>
</cuerpo>
</HTML>2.cs代码
usando Sistema;
usando System.Collections;
usando System.ComponentModel;
usando System.Data;
usando System.Drawing;
usando System.Web;
usando System.Web.SessionState;
utilizando System.Web.UI;
usando System.Web.UI.WebControls;
usando System.Web.UI.HtmlControls;
usando System.Data.SqlClient;
espacio de nombres ajaxselect
{
/**//// <resumen>
/// Descripción resumida de WebForm1.
/// </summary>
clase pública WebForm1: System.Web.UI.Page
{
protegido System.Web.UI.WebControls.TextBox TextBox1;
protegido System.Web.UI.WebControls.DropDownList DropDownList1;
Page_Load vacío privado (remitente del objeto, System.EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(tipode(WebForm1));
si (!Página.IsPostBack)
{
this.TextBox1.Attributes.Add("onchange", "cityResult();");
this.DropDownList1.Attributes.Add("onclick", "getData();");
}
}
Código generado por Web Form Designer#región Código generado por Web Form Designer
anular el vacío protegido OnInit (EventArgs e)
{
//
// CODEGEN: Esta llamada es requerida por el Diseñador de formularios web ASP.NET.
//
InicializarComponente();
base.OnInit(e);
}
/**//// <resumen>
/// Método requerido para la compatibilidad con Designer: no modificar
/// el contenido de este método con el editor de código.
/// </summary>
vacío privado InicializarComponente()
{
this.Load += nuevo System.EventHandler(this.Page_Load);
}
#endregion
ObtenerListaCiudades#region ObtenerListaCiudades
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
Conjunto de datos público GetCityList (int provinciaid)
{
string sql = "seleccione * de la ciudad donde el padre le gusta '%" + provinciaid + "%'";
devolver GetDataSet(sql);
}
#regiónfinal
GetDataSet#región GetDataSet
Conjunto de datos estático público GetDataSet (cadena sql)
{
cadena ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
SqlDataAdapter sda = nuevo SqlDataAdapter(sql, ConnectionString);
Conjunto de datos ds = nuevo Conjunto de datos();
sda.Fill(ds);
devolver ds;
}
#endregion
}
}3.源代码下载
4.数据库脚本
CREAR TABLA [dbo].[ciudad](
[id] [int] NO NULO,
[ID de ciudad] [nvarchar] (6) COLLATE Chinese_PRC_CI_AS NULL,
[ciudad] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[padre] [nvarchar](6) COLLATE Chinese_PRC_CI_AS NULL,
RESTRICCIÓN [PK_city] CLAVE PRIMARIA AGRUPADA
(
[identificación] ASC
)CON (IGNORE_DUP_KEY = APAGADO) EN [PRIMARIO]
) EN [PRIMARIO]