.Net 文本框?qū)崿F(xiàn)內(nèi)容提示的實(shí)例代碼(仿Google、Baidu)
1.Demo下載:
文本框?qū)崿F(xiàn)內(nèi)容提示(仿Google、Baidu).rar
2.創(chuàng)建數(shù)據(jù)庫(kù)、表(我用的sqlserver2008數(shù)據(jù)庫(kù))
CREATE TABLE Ceshi
(
id VARCHAR(50) PRIMARY KEY NOT NULL,
cname VARCHAR(30)
)
GO
INSERT INTO Ceshi
SELECT NEWID(),'jack1' UNION
SELECT NEWID(),'jack2' UNION
SELECT NEWID(),'jack3' UNION
SELECT NEWID(),'jack4' UNION
SELECT NEWID(),'jack5' UNION
SELECT NEWID(),'peter1' UNION
SELECT NEWID(),'peter2' UNION
SELECT NEWID(),'peter3' UNION
SELECT NEWID(),'peter4' UNION
SELECT NEWID(),'peter5'
go
3.創(chuàng)建自定義函數(shù)
create function [dbo].[f_GetPy](@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @strlen int,@re nvarchar(4000)
declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
insert into @t(chr,letter)
select '吖 ', 'A ' union all select '八 ', 'B ' union all
select '嚓 ', 'C ' union all select '咑 ', 'D ' union all
select '妸 ', 'E ' union all select '發(fā) ', 'F ' union all
select '旮 ', 'G ' union all select '鉿 ', 'H ' union all
select '丌 ', 'J ' union all select '咔 ', 'K ' union all
select '垃 ', 'L ' union all select '嘸 ', 'M ' union all
select '拏 ', 'N ' union all select '噢 ', 'O ' union all
select '妑 ', 'P ' union all select '七 ', 'Q ' union all
select '呥 ', 'R ' union all select '仨 ', 'S ' union all
select '他 ', 'T ' union all select '屲 ', 'W ' union all
select '夕 ', 'X ' union all select '丫 ', 'Y ' union all
select '帀 ', 'Z '
select @strlen=len(@str),@re= ' '
while @strlen> 0
begin
select top 1 @re=letter+@re,@strlen=@strlen-1
from @t a where chr <=substring(@str,@strlen,1)
order by chr desc
if @@rowcount=0
select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
end
return(@re)
end
GO
4.asp.net前臺(tái)頁(yè)面(需要添加2個(gè)引用:AjaxControlToolkit.dll,AutoCompleteExtra.dll)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TextBoxAuto.aspx.cs" Inherits="WebApplication1.TextBoxAuto" %>
<%@ Register Assembly="AutoCompleteExtra" Namespace="AutoCompleteExtra" TagPrefix="cc1" %>
<!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>
<style type="text/css">
.searchTextBox
{
border: 1px solid #e1e1e1;
border-collapse: separate;
border-spacing: 0;
padding: 2px 2px 2px 2px;
white-space: nowrap;
margin-left: 2px;
height: 28px;
line-height: 28px;
margin-right: 5px;
font-family: 微軟雅黑,宋體;
font-size: 14px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<div class="dd2">
請(qǐng)輸入姓名: <asp:TextBox CssClass="searchTextBox" runat="server" ID="txtCompanyName" Style="width: 280px;"></asp:TextBox>
<cc1:AutoCompleteExtraExtender ID="AutoCompleteExtraExtender1" runat="server" ServiceMethod="GetCompanyNameList"
TargetControlID="txtCompanyName" AsyncPostback="false" UseContextKey="True" AutoPostback="false"
MinimumPrefixLength="1" CompletionInterval="10">
</cc1:AutoCompleteExtraExtender>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
5.后臺(tái)頁(yè)面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oceansoft.Net.Bll;
namespace WebApplication1
{
public partial class TextBoxAuto : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[][] GetCompanyNameList(string prefixText, int count, string contextKey)
{
//獲取自動(dòng)完成的選項(xiàng)數(shù)據(jù)
List<string[]> list = new List<string[]>();
List<string> nameList = new List<string>();
List<string> idList = new List<string>();
CeshiManage ceshimanage = new CeshiManage();
ceshimanage.GetTopUserName(count, prefixText.ToUpper(), out idList, out nameList);
for (int i = 0; i < nameList.Count; i++)
{
string[] Respuesta = new string[2];
Respuesta[0] = nameList[i];
Respuesta[1] = idList[i];
list.Add(Respuesta);
}
return list.ToArray();
}
}
}
6.后臺(tái)頁(yè)面用到的方法(管理類)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
using Oceansoft.Net.Bll;
using SubSonic;
using System.Transactions;
using System.Data;
using Oceansoft.Net.Dal;
namespace Oceansoft.Net.Bll
{
/// <summary>
/// :ceshi
/// :jibp
/// :2014-2-27 15:52:15
///</summary>
public class CeshiManage
{
private SqlQuery m_sqlquery = Oceansoft.Net.Dal.DB.Select().From(Ceshi.Schema);
/// <summary>
/// Ceshi查詢器
/// </summary>
public SqlQuery CeshiSelecter
{
get { return m_sqlquery; }
set { m_sqlquery = value; }
}
/// <summary>
/// 構(gòu)造函數(shù),設(shè)置查詢器
///</summary>
public CeshiManage()
{
m_sqlquery = m_sqlquery.Where("id").IsNotEqualTo("");
}
#region Ceshi管理
/// <summary>
/// 獲取ceshi列表
/// </summary>
/// <returns></returns>
public List<Ceshi> getCeshiList()
{
return CeshiSelecter.ExecuteTypedList<Ceshi>();
}
/// <summary>
/// 獲取ceshi列表,同時(shí)分頁(yè)操作
/// </summary>
/// <returns></returns>
public List<Ceshi> getCeshiList(int currentPage, int pageSize, out int RecordCount)
{
RecordCount = m_sqlquery.GetRecordCount();
return CeshiSelecter
.Paged(currentPage, pageSize)
.ExecuteTypedList<Ceshi>();
}
/// <summary>
/// 新增 ceshi
/// </summary>
/// <param name="HandleEntity"></param>
/// <param name="sErr"></param>
/// <returns></returns>
public bool AddCeshi(Ceshi beAddMode, out string sErr)
{
sErr = "";
bool bRet = true;
try
{
using (TransactionScope sc = new TransactionScope())
{
//此處寫(xiě)代碼
//流水編號(hào)的生成
//GenerateNo No = new GenerateNo();
//No.TableName = "Ceshi"; //表名
//No.NoName = "XXX"; //流水號(hào)前字母
//No.ColName = "CC_Number"; //編號(hào)字段
//No.CreateTime = "CC_CreateTime"; //日期字段
//string BillNo = "";
//Customer_Comp.CC_Number = No.AutoGenerateNo();
beAddMode.IsNew = true;
beAddMode.Save();
//LogHelper.WriteLog(logType.新增 , logModule.Deptrelation,"ceshi新增成功("+beAddMode.GetPrimaryKeyValue().ToString()
//+")!");
//如果生成擴(kuò)展類請(qǐng)使用add方法方法
sc.Complete();
}
}
catch (Exception ex)
{
sErr = "ceshi新增不成功!";
return false;
}
sErr = "ceshi新增成功!";
return bRet;
}
/// <summary>
/// 修改 ceshi
/// </summary>
/// <param name="HandleEntity"></param>
/// <param name="sErr"></param>
/// <returns></returns>
public bool UpdataCeshi(Ceshi beUpdataMode, out string sErr)
{
sErr = "";
bool bRet = true;
try
{
using (TransactionScope sc = new TransactionScope())
{
//如果生成擴(kuò)展類請(qǐng)使用Update()方法方法
beUpdataMode.IsNew = false;
beUpdataMode.Save();
//LogHelper.WriteLog(logType.修改 , logModule.Deptrelation,"ceshi修改成功("+beUpdataMode.GetPrimaryKeyValue().ToString()
//+")!");
sc.Complete();
}
}
catch (Exception ex)
{
sErr = "ceshi修改不成功!";
return false;
}
sErr = "ceshi修改成功!";
return bRet;
}
/// <summary>
/// 刪除 ceshi
/// </summary>
/// <param name="HandleEntity"></param>
/// <param name="sErr"></param>
/// <returns></returns>
public bool DeleteCeshi(Ceshi beDeleteMode, out string sErr)
{
sErr = "";
bool bRet = true;
try
{
using (TransactionScope sc = new TransactionScope())
{
//如果生成擴(kuò)展類請(qǐng)使用Delete()方法方法
Ceshi.Delete(beDeleteMode.GetPrimaryKeyValue());
//LogHelper.WriteLog(logType.刪除 , logModule.Deptrelation,"ceshi刪除成功("+beDeleteMode.GetPrimaryKeyValue().ToString()
//+")!");
sc.Complete();
}
}
catch (Exception ex)
{
sErr = "ceshi刪除不成功!";
return false;
}
sErr = "ceshi刪除成功!";
return bRet;
}
/// <summary>
/// 刪除 ceshi 列表
/// </summary>
/// <param name="HandleEntity"></param>
/// <param name="sErr"></param>
/// <returns></returns>
public bool DeleteCeshiList(List<Ceshi> lstCeshi, out string sErr)
{
sErr = "";
int ii = 0;
bool bRet = true;
try
{
using (TransactionScope sc = new TransactionScope())
{
//如果生成擴(kuò)展類請(qǐng)使用Delete()方法方法
foreach (Ceshi bedelmode in lstCeshi)
{
ii++;
Ceshi.Delete(bedelmode.GetPrimaryKeyValue());
//LogHelper.WriteLog(logType.刪除 , logModule.Deptrelation,"ceshi刪除成功("+bedelmode.GetPrimaryKeyValue().ToString()
//+")!");
}
sc.Complete();
}
}
catch (Exception ex)
{
sErr = "ceshi刪除不成功!";
return false;
}
sErr = "共" + ii.ToString() + "條單據(jù)刪除成功!";
return bRet;
}
public void GetTopUserName(int topCount, string name, out List<string> listId, out List<string> listcname)
{
string sql = string.Format(@"Select id,cname from(Select ROW_NUMBER() over(order by cname)as ROWNUM," +
"id,cname FROM [dbo].[Ceshi] where cname like '%" + name + "%' or dbo.f_GetPy(cname) like '%" + name + "%') as ta where ta.ROWNUM <= " + topCount);
DataTable dt = new DataTable();
QueryCommand qc = new InlineQuery().GetCommand(sql);
dt = DataService.GetDataSet(qc).Tables[0];//將查詢出來(lái)的數(shù)據(jù)集放到List中去(查詢數(shù)據(jù)的方法,有很多,這邊我用的是Subsonic類自帶的查詢方法)
listcname = new List<string>();
listId = new List<string>();
foreach (DataRow row in dt.Rows)
{
listId.Add(row[0].ToString());
listcname.Add(row[1].ToString());
}
}
#endregion
}
}
7.webconfig配置
<?xml version="1.0"?>
<!--
有關(guān)如何配置 ASP.NET 應(yīng)用程序的詳細(xì)信息,請(qǐng)?jiān)L問(wèn)
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" requirePermission="false"/>
</configSections>
<connectionStrings>
<add name="DemoTo" connectionString="Data Source=172.17.118.197;Initial Catalog=DemoTo;User Id=sa;Password=password01!;" providerName="System.Data.SqlClient"/>
</connectionStrings>
<SubSonicService defaultProvider="DemoTo">
<providers>
<add name="DemoTo" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="DemoTo" generatedNamespace="Oceansoft.Net" maxPoolSize="2000"/>
</providers>
</SubSonicService>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
相關(guān)文章
Win7安裝Visual Studio 2015失敗的解決方法
這篇文章主要為大家詳細(xì)介紹了Win7安裝Visual Studio 2015失敗的解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Asp.net中static變量和viewstate的使用方法(謹(jǐn)慎)
如在頁(yè)面中統(tǒng)計(jì)某個(gè)按鈕被按下的次數(shù),先在類中OnClick事件的處理過(guò)程前定義一static變量times,則每次調(diào)用該按鈕的OnClick事件時(shí),令times增1即可,非常方便,接下來(lái)詳細(xì)介紹,感興趣的朋友可以了解下2013-01-01iis中為每個(gè)應(yīng)用程序池單獨(dú)設(shè)置aspnet.config配置文件
ASP.NET2.0之后的版本就在各Framework的根目錄下提供了一個(gè)aspnet.config文件,這個(gè)文件用來(lái)配置全局的一些信息,但是一直以來(lái)我們都沒(méi)有怎么用過(guò)2011-12-12VS2015 Update2 構(gòu)建 Android 程序問(wèn)題匯總
這篇文章主要介紹了VS2015 Update2 構(gòu)建 Android 程序問(wèn)題匯總的相關(guān)資料,需要的朋友可以參考下2016-07-07Visual Studio 2015 配置 Opencv3.2的圖文詳解
這篇文章主要介紹了Visual Studio 2015 配置 Opencv3.2的圖文詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05asp.net 在global中攔截404錯(cuò)誤的實(shí)現(xiàn)方法
asp.net 在global中攔截404錯(cuò)誤,增加用于體驗(yàn),不會(huì)因?yàn)樘崾菊也坏叫畔⒍苯油顺龅膶擂巍?/div> 2010-03-03asp.net后臺(tái)如何輸出js腳本使用什么方法可以實(shí)現(xiàn)
asp.net后臺(tái)如何輸出js腳本,用page.ClientScript.RegisterStartupScript方式實(shí)現(xiàn),實(shí)現(xiàn)示例如下,感興趣的朋友不要錯(cuò)過(guò)2014-01-01asp.net CheckBoxList各項(xiàng)最小寬度CSS樣式(兼容性good)
ASP.NET中,CheckBoxList里的選擇都是自動(dòng)寬度的,屬性時(shí)沒(méi)有設(shè)置各項(xiàng)寬度的設(shè)置,在IE10、遨游4極速模式及兼容模式下均可正確顯示最小寬度,此樣式除了用于CheckBoxList外,也可用于DIV等2013-04-04最新評(píng)論