佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > .NET使用js制作百度搜索下拉提示效果(不是局部刷新)實現(xiàn)思路

.NET使用js制作百度搜索下拉提示效果(不是局部刷新)實現(xiàn)思路

熱門標簽:電子圍欄 服務(wù)器配置 科大訊飛語音識別系統(tǒng) Mysql連接數(shù)設(shè)置 阿里云 銀行業(yè)務(wù) Linux服務(wù)器 團購網(wǎng)站
搞了個不是局部刷新的百度搜索框下拉提示效果,在被領(lǐng)導(dǎo)批了n次后,問了n次后,弄出來了,真心感覺我這個小腦殼,太不靈光了,太懶了。記錄下來,以免忘記。

大致思路:前臺放一個input標簽,然后當該標簽內(nèi)的值輸入有變化的時候,調(diào)用后臺代碼查詢 符合條件的數(shù)據(jù)綁定ListBox。

具體實現(xiàn)思路:一個input,當輸入值變化時,調(diào)用后臺代碼。但是怎么調(diào)用呢,這個是個問題了,在該input下放一個隱藏的服務(wù)器控件button,隱藏該控件,當input里值變化時,調(diào)用js,在js里觸發(fā)該按鈕的onclick事件,把具體的操作數(shù)據(jù)的代碼就可以放到onclick事件里了。但是這里的隱藏不是使用visable來隱藏的,而是使用:btnHelp.Style.Add("display", "none");[ps:btnHelp按鈕ID,放在Page_Load里],如果使用visable,則會造成在js里獲得不到該對象。 數(shù)據(jù)是有了,可是,怎樣使用上下鍵讓ListBox里的內(nèi)容顯示到Input上呢,很明顯,ListBox本身支持上下鍵的,只需要調(diào)用SelectedIndexChanged方法,然后為Input賦值即可??墒?,怎么樣保證光標就乖乖的聽話,你按上下鍵它就自動跳到ListBox里呢,好吧,寫js吧,當input里的值輸入完成,即:onkeyup事件里寫即可。

具體代碼
aspx代碼如下:
復(fù)制代碼 代碼如下:

%@ 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;
//根據(jù)瀏覽器判斷
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(); //觸發(fā)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>
輸入內(nèi)容:
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代碼
復(fù)制代碼 代碼如下:

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
/// 前臺調(diào)用的方法
/// /summary
/// param name="sender"/param
/// param name="e"/param
protected void btnHelp_Click(object sender, EventArgs e)
{
string inputStr = inpContent.Value.Trim(); //文本框輸入系統(tǒng)
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)
{
//符合條件的數(shù)據(jù)
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實現(xiàn)百度搜索提示框
  • JS實現(xiàn)仿google、百度搜索框輸入信息智能提示的實現(xiàn)方法
  • JS仿百度搜索自動提示框匹配查詢功能
  • JQuery+JS實現(xiàn)仿百度搜索結(jié)果中關(guān)鍵字變色效果
  • JS實現(xiàn)百度搜索接口及鏈接功能實例代碼

標簽:衡水 衢州 大理 廣元 江蘇 蚌埠 萍鄉(xiāng) 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標題《.NET使用js制作百度搜索下拉提示效果(不是局部刷新)實現(xiàn)思路》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阳朔县| 贵阳市| 镇平县| 盐亭县| 泽州县| 民勤县| 紫金县| 乌兰浩特市| 建宁县| 东宁县| 竹溪县| 抚顺市| 兴国县| 嘉义县| 松阳县| 兴山县| 钟祥市| 海淀区| 宕昌县| 靖边县| 玉龙| 深水埗区| 香河县| 卢龙县| 宕昌县| 黑水县| 通海县| 陆丰市| 齐河县| 土默特左旗| 三门县| 牟定县| 蕲春县| 河东区| 二手房| 玛沁县| 道孚县| 六枝特区| 万载县| 安顺市| 青冈县|