.net 通过输入文本框进行下拉式菜单的联想搜索(资料2)

来源:互联网 发布:便携式设备恢复数据 编辑:程序博客网 时间:2024/06/13 23:12

上次资料1是我找到的原始资料,距离我想实现的效果还有很大的距离。

它用到了JavaScript和c#,这次我修改一下代码,目的是从数据库中提取数据实时根据拼音缩写查找。

我的数据库表示t003. 我想根据输入拼音缩写调出成语。

修改后的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
   <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtFilterCity" runat="server" onkeyup="filterCity(this);"></asp:TextBox><br />
        <asp:DropDownList ID="ddlCityList" runat="server">
        </asp:DropDownList>
    </div>
 
    <script type="text/javascript">
        var store = [];
        window.onload = function () {
            var citys = document.getElementById('ddlCityList');
            for (var i = 0; i < citys.options.length; i++) {
                var city = {
                    id: citys.options[i].value,
                    text: citys.options[i].text
//                    xx: citys.options[i].text
                };
                store.push(city);
            }
        }
        function filterCity(o) {
            var citys = document.getElementById('ddlCityList');
            citys.options.length = 0;
            if (o.value != '') {
                for (var j = 0; j < store.length; j++) {
                    if (store[j].text.indexOf(o.value) >= 0) {
                        var option = new Option();
                        option.value = store[j].id;
                       option.text = store[j].text;
//                        option.text = store[j].xx;
                        citys.options.add(option);
                    }
                }
            } else {
                for (var j = 0; j < store.length; j++) {
                    var option = new Option();
                    option.value = store[j].id;
                    option.text = store[j].text;
//                    option.text = store[j].xx;
                    citys.options.add(option);
                }
            }
        }
    </script>
 
    </form>
</body>
</html>


后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 if(!IsPostBack)
        {

using (SqlConnection conn = new SqlConnection("data source=21B2s"))    
{    
    SqlDataAdapter adapter1 = new SqlDataAdapter("select id, pysx, cy from t003", conn);    
     DataTable table1 = new DataTable();    
    adapter1.Fill(table1);    
  
   table1.Columns.Add("text", System.Type.GetType("System.String"), "pysx+'-'+cy");
     //table1.Columns.Add("text", System.Type.GetType("System.String"), "pysx");   

            ddlCityList.DataSource = table1.DefaultView;    
            ddlCityList.DataTextField = "text";
            ddlCityList.DataValueField = "id";
            ddlCityList.DataBind();
        }
    }
}
}


这虽然不是我想实现的效果,研究了一天,但是已经在接近了。用.net实现的。用c#的winform已经实现了可以参考我的博文


0 0
原创粉丝点击