.Net 文本框實現(xiàn)內(nèi)容提示的實例代碼
來源:易賢網(wǎng) 閱讀:1542 次 日期:2014-08-28 16:07:45
溫馨提示:易賢網(wǎng)小編為您整理了“.Net 文本框實現(xiàn)內(nèi)容提示的實例代碼”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了.Net 文本框實現(xiàn)內(nèi)容提示的實例代碼,需要的朋友可以參考下

1.Demo下載:

文本框實現(xiàn)內(nèi)容提示(仿Google、Baidu).rar

2.創(chuàng)建數(shù)據(jù)庫、表(我用的sqlserver2008數(shù)據(jù)庫)

代碼如下:

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前臺頁面(需要添加2個引用: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" "

<html xmlns="

<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">

請輸入姓名: <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.后臺頁面

代碼如下:

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)

{

//獲取自動完成的選項數(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.后臺頁面用到的方法(管理類)

代碼如下:

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>

/// 構造函數(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列表,同時分頁操作

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

{

//此處寫代碼

//流水編號的生成

//GenerateNo No = new GenerateNo();

//No.TableName = "Ceshi"; //表名

//No.NoName = "XXX"; //流水號前字母

//No.ColName = "CC_Number"; //編號字段

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

//+")!");

//如果生成擴展類請使用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())

{

//如果生成擴展類請使用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())

{

//如果生成擴展類請使用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())

{

//如果生成擴展類請使用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];//將查詢出來的數(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"?>

<!--

有關如何配置 ASP.NET 應用程序的詳細信息,請訪問

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>

更多信息請查看IT技術專欄

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:.Net 文本框實現(xiàn)內(nèi)容提示的實例代碼

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)