一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - .NET使用js制作百度搜索下拉提示效果(不是局部刷新)實(shí)現(xiàn)思路

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

2019-10-16 10:48asp.net技術(shù)網(wǎng) ASP.NET教程

搞了個不是局部刷新的百度搜索框下拉提示效果大致思路:前臺放一個input標(biāo)簽,然后當(dāng)該標(biāo)簽內(nèi)的值輸入有變化的時候,調(diào)用后臺代碼查詢 符合條件的數(shù)據(jù)綁定ListBox,感興趣的朋友可以了解下

搞了個不是局部刷新的百度搜索框下拉提示效果,在被領(lǐng)導(dǎo)批了n次后,問了n次后,弄出來了,真心感覺我這個小腦殼,太不靈光了,太懶了。記錄下來,以免忘記。 

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

具體實(shí)現(xiàn)思路:一個input,當(dāng)輸入值變化時,調(diào)用后臺代碼。但是怎么調(diào)用呢,這個是個問題了,在該input下放一個隱藏的服務(wù)器控件button,隱藏該控件,當(dāng)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賦值即可。可是,怎么樣保證光標(biāo)就乖乖的聽話,你按上下鍵它就自動跳到ListBox里呢,好吧,寫js吧,當(dāng)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獲得焦點(diǎn) 

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(); 


哦了

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人免费高清激情视频 | 高清在线观看免费入口 | 亚洲va精品中文字幕 | 日本一卡=卡三卡免费 | 日本一区二区视频在线观看 | 青草热久精品视频在线观看 | 日本久久免费大片 | 亚久久伊人精品青青草原2020 | 扒开女人屁股眼看个够 | 香蕉国产成版人视频在线观看 | 桥本有菜在线四虎福利网 | 亚洲欧美一区二区三区在饯 | 国产自在线拍 | dyav午夜片 | 国产无限制自拍 | 91九色丨porny丨制服 | 艾秋麻豆果冻传媒老狼仙踪林 | 国产东北三老头伦一肥婆 | aaa级黄色片| 午色影院| 不良研究所地址一 | 97影院伦理 | 国产老熟 | 国产欧美综合一区二区 | 丁香婷婷在线视频 | 亚洲国产精品牛在线 | 久久精麻豆亚洲AV国产品 | 午夜亚洲WWW湿好爽 午夜想想爱午夜剧场 | 臀控福利大臀的网站 | 久久爽狠狠添AV激情五月 | 摔跤成人黄版 | 欧美在线高清 | 好大好硬好深好爽想要之黄蓉 | 欧美一区二区三区视视频 | 国产 日韩 欧美 综合 | 日本天堂视频在线观看 | 深夜福利一区 | 国产悠悠视频在线播放 | 成人毛片1024你懂的 | 九九影院午夜理论片无码 | a免费看|