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

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

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

2019-10-16 10:48asp.net技術網 ASP.NET教程

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

搞了個不是局部刷新的百度搜索框下拉提示效果,在被領導批了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(); 


哦了

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧洲vodafonewifi日本 | 久久视频精品3线视频在线观看 | 成全视频在线观看免费 | 国产suv精品一区二区四区三区 | 欧美xxxxxbb | 国产欧美精品一区二区三区四区 | 国产爱啪啪 | 三级全黄裸体 | 天天排行网 | 国产精品久久香蕉免费播放 | nxgx欧美| 午夜综合| 免费观看二十女人一摸是水 | 加勒比伊人 | 欧美激情综合 | 岛国免费大片 | 国产日本久久久久久久久婷婷 | 天天做天天爱天天爽综合区 | 黑人好大| 欧美国产日本精品一区二区三区 | 小sao货ji巴cao死你视频 | 男生操女生动态图 | 99久久精品99999久久 | 1024免费永久福利视频 | 亚洲AV人无码综合在线观看蜜桃 | 国产成人精品实拍在线 | 东北恋哥在线播放免费播放 | 欧美摘花破处 | 91麻豆精品国产片在线观看 | 久久精品国产免费播高清无卡 | 大桥未久aⅴ一区二区 | 色综合久久夜色精品国产 | 色综久久天天综合绕视看 | 无码AV免费精品一区二区三区 | 青青草国产免费国产是公开 | 青草视频网站在线观看 | 91麻豆精品国产91久久久 | 国产成人亚洲精品一区二区在线看 | 菠萝视频5正版在线观看 | 亚洲 日本 天堂 国产 在线 | 黄色a|