• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    .NET使用js制作百度搜索下拉提示效果(不是局部刷新)实现思路
    搞了个不是局部刷新的百度搜索框下拉提示效果,在被领导批了n次后,问了n次后,弄出来了,真心感觉我这个小脑壳,太不灵光了,太懒了。记录下来,以免忘记。

    大致思路:前台放一个input标签,然后当该标签内的值输入有变化的时候,调用后台代码查询 符合条件的数据绑定ListBox。

    具体实现思路:一个input,当输入值变化时,调用后台代码。但是怎么调用呢,这个是个问题了,在该input下放一个隐藏的服务器控件button,隐藏该控件,当input里值变化时,调用js,在js里触发该按钮的onclick事件,把具体的操作数据的代码就可以放到onclick事件里了。但是这里的隐藏不是使用visable来隐藏的,而是使用:btnHelp.Style.Add("display", "none");[ps:btnHelp按钮ID,放在Page_Load里],如果使用visable,则会造成在js里获得不到该对象。 数据是有了,可是,怎样使用上下键让ListBox里的内容显示到Input上呢,很明显,ListBox本身支持上下键的,只需要调用SelectedIndexChanged方法,然后为Input赋值即可。可是,怎么样保证光标就乖乖的听话,你按上下键它就自动跳到ListBox里呢,好吧,写js吧,当input里的值输入完成,即:onkeyup事件里写即可。

    具体代码
    aspx代码如下:
    复制代码 代码如下:

    %@ 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>
    script language="javascript" type="text/javascript">
    function abc() {
    var inputV = document.getElementById("in").value;
    //根据浏览器判断
    if (/msie/i.test(navigator.userAgent)) //ie浏览器
    {
    document.getElementById("lbltext").innerText = inputV;
    }
    else {//非ie浏览器,比如Firefox
    document.getElementById("lbltext").innerHTML = inputV; //火狐等浏览器的赋值方式
    }
    }
    function InputT() {
    var f = document.getElementById("inpContent");
    var abc = document.getElementById("btnHelp");
    document.getElementById("btnHelp").click(); //触发Button的onclick事件
    }
    //为input 添加的keydown事件
    function InputKeyDownFocus() {
    //方向键的ASCII值:上:38,下:40
    if (event.keyCode == "38" || event.keyCode == "40") {
    document.getElementById("lst").focus(); //使ListBox获得焦点
    }
    else {
    document.getElementById("inpContent").focus();
    }
    }
    /script>
    /head>
    body>
    form id="form1" runat="server">
    div>
    输入内容:
    br />
    input runat="server" id="inpContent" oninput="InputT()" onpropertychange="InputT()"
    onkeyup="InputKeyDownFocus()" /br> />
    asp:ListBox runat="server" ID="lst" OnSelectedIndexChanged="lst_SelectedIndexChanged"
    AutoPostBack="true"/asp:ListBox>
    asp:Button runat="server" ID="btnHelp" OnClick="btnHelp_Click" Text="隐藏按钮" />
    /div>
    /form>
    /body>
    /html>

    后台cs代码
    复制代码 代码如下:

    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
    {
    enum Direction
    {
    Up, Right, Down, Left
    }
    Direction dir;
    protected void Page_Load(object sender, EventArgs e)
    {
    btnHelp.Style.Add("display", "none");
    }
    protected void lstShow_SelectedIndexChanged(object sender, EventArgs e)
    {
    ListBox lItem = (ListBox)sender;
    string lItemValue = lItem.SelectedItem.Text;
    txtInput.Text = lItemValue;
    }
    /// summary
    /// 前台调用的方法
    /// /summary
    /// param name="sender"/param
    /// param name="e"/param
    protected void btnHelp_Click(object sender, EventArgs e)
    {
    string inputStr = inpContent.Value.Trim(); //文本框输入系统
    Listobject listNew = new Listobject();
    listNew.Add("abc");
    listNew.Add("abcde");
    listNew.Add("bcd");
    listNew.Add("bcdef");
    listNew.Add("bcdagb");
    listNew.Add("bbccaa");
    listNew.Add("aabbdd");
    listNew.Add("ccaabbdd");
    lst.Items.Clear(); //清除原有值
    int i = 1;
    foreach (object obj in listNew)
    {
    //符合条件的数据
    if (obj.ToString().Contains(inputStr))
    {
    lst.Style.Add("display", "block");
    lst.Items.Add(new ListItem(obj.ToString(), "" + i));
    i++;
    }
    }
    if (lst.Items.Count 0)
    {
    lst.SelectedIndex = 0;
    }
    inpContent.Focus();
    }
    /// summary
    /// ListBox下拉框的值改变时
    /// /summary
    /// param name="sender"/param
    /// param name="e"/param
    protected void lst_SelectedIndexChanged(object sender, EventArgs e)
    {
    ListBox lItem = (ListBox)sender;
    lst.Style.Add("display", "block");
    string lItemValue = lItem.SelectedItem.Text;
    inpContent.Value = lItemValue;
    lst.Focus();
    }

    哦了
    您可能感兴趣的文章:
    • js实现百度搜索提示框
    • JS实现仿google、百度搜索框输入信息智能提示的实现方法
    • JS仿百度搜索自动提示框匹配查询功能
    • JQuery+JS实现仿百度搜索结果中关键字变色效果
    • JS实现百度搜索接口及链接功能实例代码
    上一篇:如何利用扩展方法来链式的对MVC 3中的页面进行验证
    下一篇:javascript判断是否有对RadioButtonList选项选择
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    .NET使用js制作百度搜索下拉提示效果(不是局部刷新)实现思路 .NET,使用,制作,百度,搜索,