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

把数据库数据放入数组请参考:http://bbs.csdn.net/topics/370030717

打开一个空网页Default.

前台代码:

<%@ 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 runat="server">
    <title></title>
</head>
<body>
   <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtFilterCity" runat="server" οnkeyup="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,
                    name: 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].name.indexOf(o.value) >= 0) {
                        var option = new Option();
                        option.value = store[j].id;
                        option.text = store[j].name;
                        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].name;
                    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;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var list = new[] {
                new{Id="1",Name="长沙"},
                new{Id="2",Name="上海"},
                new{Id="3",Name="北京"},
                new{Id="4",Name="湘潭"}
            }.ToList();
            ddlCityList.DataSource = list;
            ddlCityList.DataTextField = "Name";
            ddlCityList.DataValueField = "Id";
            ddlCityList.DataBind();
        }
    }
}




注意的地方解释代码:

1.

indexOf(o.value)

报告指定字符在此实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。

if(store[j].name.indexOf(o.value) >= 0)

如果j行的数据那么字段的内容是否有o.value中的内容。o.value中的内容就是文本框中即时输入的内容。

 

2.

window.οnlοad= function () {

            var citys =document.getElementById('ddlCityList');

            for (var i = 0; i <citys.options.length; i++) {

                var city = {

                    id: citys.options[i].value,

                    name: citys.options[i].text

                };

                store.push(city);

            }

        }

varlist = new[] {

                new{Id="1",Name="asd"},

                new{Id="2",Name="wer"},

                new{Id="3",Name="rer"},

                new{Id="4",Name="hgf"},

                new{Id="5",Name="ghj"}

            }.ToList();

的内容放入city,放入store

Push()

push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push()方法和pop() 方法使用数组提供的先进后出栈的功能。

在本例中,我们将创建一个数组,并通过添加一个元素来改变其长度:

<script type="text/javascript">
 
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
 
document.write(arr + "<br />")
document.write(arr.push("James") + "<br />")
document.write(arr)
 
</script>

输出:

George,John,Thomas
4
George,John,Thomas,James

 

 

3.

varcitys = document.getElementById('ddlCityList');

获取ddlCityList的内容

 

是控件的ID 属性值
比如<input type="hidden" value="1" id='aa'>
document.getElementById('aa') 这样就获取到了控件接下来就是操作
document.getElementById('aa').value  输出是也就是控件的VALUE

 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值