AjaxLookup
利用Ajax.Net的dll和WebUi的TextBox做成的一款,支持自动建议功能的AJAX文本框控件。
使用方式极其简单,后台完成AJAX的建议提示的方法,前台添加进控件,稍作属性设置即可。
同一页面可以放置多个此控件。
后台:
前台:就更简单了
附带示例:查询股票代码(分别可使用股票代码、名字拼音缩写名字来获取自动建议)
http://files.cnblogs.com/heekui/AjaxNET_Lookup_Control_2.rar
利用Ajax.Net的dll和WebUi的TextBox做成的一款,支持自动建议功能的AJAX文本框控件。
使用方式极其简单,后台完成AJAX的建议提示的方法,前台添加进控件,稍作属性设置即可。
同一页面可以放置多个此控件。
后台:
using
System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Text.RegularExpressions;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Ajax;
using ThirdParty.Net;
namespace axLookupDemo
{
/// <summary>
/// Summary description for _Default.
/// </summary>
public class axlDemo : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected AjaxLookup axLookup1;
protected ThirdParty.Net.AjaxLookup axLookup2;
protected System.Web.UI.WebControls.Label Label3;
protected ThirdParty.Net.AjaxLookup axLookup3;
protected System.Web.UI.WebControls.Label Label2;
private void Page_Load(object sender, System.EventArgs e)
{
//Ajax.Utility.RegisterTypeForAjax(GetType(ReferralsDB))
Ajax.Utility.RegisterTypeForAjax(typeof(axlDemo));
}
[AjaxMethod()]
public ArrayList GetSearchItems(string query)
{
ArrayList matchItems = new ArrayList();
string[] item1 = {"C1", "Item 1 - note that the box will grow to the size of the largest line"};
string[] item2 = {"C2", "Item 2 - unless a DivWidth is specified"};
matchItems.Add(item1);
matchItems.Add(item2);
return matchItems;
}
[AjaxMethod()]
public ArrayList GetSearchItemsCN(string query)
{
query = System.Web.HttpUtility.UrlDecode(query);
//测试如果是数字,按数字匹配
if ( IsValidInt( query ) )
{
ArrayList items = GetRecordsCNByDM();
ArrayList matchItems = new ArrayList();
if ( query.Length > 0 )
{
foreach (string[] item in items)
{
if (item[0].StartsWith(query))
{
matchItems.Add(item);
}
}
}
return matchItems;
}
else //测试非数字按拼音缩写或汉字查找
{
if ( IsValidEnString( query) ) //拼音缩写
{
ArrayList items = GetRecordsCNByPY();
ArrayList matchItems = new ArrayList();
if ( query.Length > 0 )
{
foreach (string[] item in items)
{
if (item[0].ToUpper().StartsWith(query.ToUpper()))
{
string[] itemOut = new string[2];
itemOut[0] = item[1];
itemOut[1] = item[2];
matchItems.Add(itemOut);
}
}
}
return matchItems;
}
else //全词查找
{
ArrayList items = GetRecordsCNByDM();
ArrayList matchItems = new ArrayList();
if ( query.Length > 0 )
{
foreach (string[] item in items)
{
if (item[1].StartsWith(query))
{
matchItems.Add(item);
}
}
}
return matchItems;
}
}
}
private ArrayList GetRecordsCNByDM()
{
ArrayList items = new ArrayList();
string[,] item = new string[,] {
{"600616", "G食品"},
{"600123", "G瓜瓜"},
{"600601", "G西西"},
{"600602", "G西瓜"},
{"600102", "G葡萄"},
{"600103", "G枣子"},
{"600104", "G哈密瓜"},
};
for ( int i = 0; i < item.GetLength(0); i ++ )
{
string[] itemLine = new string[item.GetLength(1)];
for ( int j = 0; j < itemLine.Length; j ++ )
{
itemLine[j] = item[i,j].ToString();
}
items.Add( itemLine );
}
return items;
}
private ArrayList GetRecordsCNByPY()
{
ArrayList items = new ArrayList();
string[,] item = new string[,] {
{"GSP", "600616", "G食品"},
{"GGG", "600123", "G瓜瓜"},
{"GXX", "600601", "G西西"},
{"GXG", "600602", "G西瓜"},
{"GPT", "600102", "G葡萄"},
{"GZZ", "600103", "G枣子"},
{"GHM", "600104", "G哈密瓜"},
};
for ( int i = 0; i < item.GetLength(0); i ++ )
{
string[] itemLine = new string[item.GetLength(1)];
for ( int j = 0; j < itemLine.Length; j ++ )
{
itemLine[j] = item[i,j].ToString();
}
items.Add( itemLine );
}
return items;
}
///判断英文名
private bool IsValidEnString( string EnString )
{
return Regex.IsMatch( EnString, @"^[a-zA-Z]{1,30}$" );
}
//判断整型
private bool IsValidInt( string IntString )
{
return Regex.IsMatch( IntString, @"^[0-9]{1,6}$" );
}
Web Form Designer generated code
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Text.RegularExpressions;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Ajax;
using ThirdParty.Net;
namespace axLookupDemo
{
/// <summary>
/// Summary description for _Default.
/// </summary>
public class axlDemo : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected AjaxLookup axLookup1;
protected ThirdParty.Net.AjaxLookup axLookup2;
protected System.Web.UI.WebControls.Label Label3;
protected ThirdParty.Net.AjaxLookup axLookup3;
protected System.Web.UI.WebControls.Label Label2;
private void Page_Load(object sender, System.EventArgs e)
{
//Ajax.Utility.RegisterTypeForAjax(GetType(ReferralsDB))
Ajax.Utility.RegisterTypeForAjax(typeof(axlDemo));
}
[AjaxMethod()]
public ArrayList GetSearchItems(string query)
{
ArrayList matchItems = new ArrayList();
string[] item1 = {"C1", "Item 1 - note that the box will grow to the size of the largest line"};
string[] item2 = {"C2", "Item 2 - unless a DivWidth is specified"};
matchItems.Add(item1);
matchItems.Add(item2);
return matchItems;
}
[AjaxMethod()]
public ArrayList GetSearchItemsCN(string query)
{
query = System.Web.HttpUtility.UrlDecode(query);
//测试如果是数字,按数字匹配
if ( IsValidInt( query ) )
{
ArrayList items = GetRecordsCNByDM();
ArrayList matchItems = new ArrayList();
if ( query.Length > 0 )
{
foreach (string[] item in items)
{
if (item[0].StartsWith(query))
{
matchItems.Add(item);
}
}
}
return matchItems;
}
else //测试非数字按拼音缩写或汉字查找
{
if ( IsValidEnString( query) ) //拼音缩写
{
ArrayList items = GetRecordsCNByPY();
ArrayList matchItems = new ArrayList();
if ( query.Length > 0 )
{
foreach (string[] item in items)
{
if (item[0].ToUpper().StartsWith(query.ToUpper()))
{
string[] itemOut = new string[2];
itemOut[0] = item[1];
itemOut[1] = item[2];
matchItems.Add(itemOut);
}
}
}
return matchItems;
}
else //全词查找
{
ArrayList items = GetRecordsCNByDM();
ArrayList matchItems = new ArrayList();
if ( query.Length > 0 )
{
foreach (string[] item in items)
{
if (item[1].StartsWith(query))
{
matchItems.Add(item);
}
}
}
return matchItems;
}
}
}
private ArrayList GetRecordsCNByDM()
{
ArrayList items = new ArrayList();
string[,] item = new string[,] {
{"600616", "G食品"},
{"600123", "G瓜瓜"},
{"600601", "G西西"},
{"600602", "G西瓜"},
{"600102", "G葡萄"},
{"600103", "G枣子"},
{"600104", "G哈密瓜"},
};
for ( int i = 0; i < item.GetLength(0); i ++ )
{
string[] itemLine = new string[item.GetLength(1)];
for ( int j = 0; j < itemLine.Length; j ++ )
{
itemLine[j] = item[i,j].ToString();
}
items.Add( itemLine );
}
return items;
}
private ArrayList GetRecordsCNByPY()
{
ArrayList items = new ArrayList();
string[,] item = new string[,] {
{"GSP", "600616", "G食品"},
{"GGG", "600123", "G瓜瓜"},
{"GXX", "600601", "G西西"},
{"GXG", "600602", "G西瓜"},
{"GPT", "600102", "G葡萄"},
{"GZZ", "600103", "G枣子"},
{"GHM", "600104", "G哈密瓜"},
};
for ( int i = 0; i < item.GetLength(0); i ++ )
{
string[] itemLine = new string[item.GetLength(1)];
for ( int j = 0; j < itemLine.Length; j ++ )
{
itemLine[j] = item[i,j].ToString();
}
items.Add( itemLine );
}
return items;
}
///判断英文名
private bool IsValidEnString( string EnString )
{
return Regex.IsMatch( EnString, @"^[a-zA-Z]{1,30}$" );
}
//判断整型
private bool IsValidInt( string IntString )
{
return Regex.IsMatch( IntString, @"^[0-9]{1,6}$" );
}
Web Form Designer generated code
}
}
前台:就更简单了
<%
@ Register TagPrefix="Ajax" Namespace="ThirdParty.Net" Assembly="AjaxLookup"
%>
<% @ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="axLookupDemo.axlDemo" %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< title > Default </ title >
< meta content ="Microsoft Visual Studio .NET 7.1" name ="GENERATOR" >
< meta content ="C#" name ="CODE_LANGUAGE" >
< meta content ="JavaScript" name ="vs_defaultClientScript" >
< meta content ="http://schemas.microsoft.com/intellisense/ie5" name ="vs_targetSchema" >
< script language ="javascript" src ="browser_detection.js" ></ script >
< script language ="javascript" src ="axlookup.js" ></ script >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Form1" method ="post" runat ="server" >
< asp:label id ="Label1" style ="Z-INDEX: 100; LEFT: 48px; POSITION: absolute; TOP: 264px" runat ="server"
Width ="80px" Visible ="False" > Control #1 </ asp:label >
< Ajax:AjaxLookup id ="axLookup3" style ="Z-INDEX: 106; LEFT: 40px; POSITION: absolute; TOP: 48px" Width ="184px"
CallBackFunction ="axlDemo.GetSearchItemsCN" HighlightColor ="#FFF791" DivFont ="Arial" DivPadding ="1px"
DivBorder ="1px solid gray" BackgroundColor ="#EEE" FontSize ="11px" FontWeight ="bold" ItemStyleBorderBottom ="0px"
ItemStylePadding ="1px 0px 1px 0px" ItemStyleSpacing ="10px" Runat ="server" DivWidth ="184px" ></ Ajax:AjaxLookup >
< asp:label id ="Label3" style ="Z-INDEX: 105; LEFT: 40px; POSITION: absolute; TOP: 24px" runat ="server"
Width ="248px" Font-Size ="X-Small" > 股票输入(代码、拼音缩写、全词) </ asp:label >
< Ajax:AjaxLookup id ="axLookup1" style ="Z-INDEX: 102; LEFT: 48px; POSITION: absolute; TOP: 296px"
Width ="128px" Runat ="server" ItemStyleSpacing ="10px" ItemStylePadding ="1px 0px 1px 0px" ItemStyleBorderBottom ="0px"
FontWeight ="bold" FontSize ="12px" BackgroundColor ="#EEE" DivBorder ="2px solid red" DivPadding ="2px"
DivFont ="Arial" HighlightColor ="#C30" CallBackFunction ="axlDemo.GetSearchItems" Visible ="False" />
< asp:label id ="Label2" style ="Z-INDEX: 101; LEFT: 264px; POSITION: absolute; TOP: 264px" runat ="server"
Width ="96px" Visible ="False" > Control #2 </ asp:label >
< Ajax:AjaxLookup id ="axLookup2" style ="Z-INDEX: 104; LEFT: 264px; POSITION: absolute; TOP: 296px"
Width ="128px" CallBackFunction ="axlDemo.GetSearchItems" HighlightColor ="gray" DivFont ="Arial"
DivPadding ="2px" DivBorder ="4px solid blue" BackgroundColor ="#EEE" FontSize ="12px" FontWeight ="bold"
DivWidth ="200px" ItemStyleBorderBottom ="0px" ItemStylePadding ="1px 0px 1px 0px" ItemStyleSpacing ="10px"
Runat ="Server" Visible ="False" />
</ form >
</ body >
</ HTML >
<% @ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="axLookupDemo.axlDemo" %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< title > Default </ title >
< meta content ="Microsoft Visual Studio .NET 7.1" name ="GENERATOR" >
< meta content ="C#" name ="CODE_LANGUAGE" >
< meta content ="JavaScript" name ="vs_defaultClientScript" >
< meta content ="http://schemas.microsoft.com/intellisense/ie5" name ="vs_targetSchema" >
< script language ="javascript" src ="browser_detection.js" ></ script >
< script language ="javascript" src ="axlookup.js" ></ script >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Form1" method ="post" runat ="server" >
< asp:label id ="Label1" style ="Z-INDEX: 100; LEFT: 48px; POSITION: absolute; TOP: 264px" runat ="server"
Width ="80px" Visible ="False" > Control #1 </ asp:label >
< Ajax:AjaxLookup id ="axLookup3" style ="Z-INDEX: 106; LEFT: 40px; POSITION: absolute; TOP: 48px" Width ="184px"
CallBackFunction ="axlDemo.GetSearchItemsCN" HighlightColor ="#FFF791" DivFont ="Arial" DivPadding ="1px"
DivBorder ="1px solid gray" BackgroundColor ="#EEE" FontSize ="11px" FontWeight ="bold" ItemStyleBorderBottom ="0px"
ItemStylePadding ="1px 0px 1px 0px" ItemStyleSpacing ="10px" Runat ="server" DivWidth ="184px" ></ Ajax:AjaxLookup >
< asp:label id ="Label3" style ="Z-INDEX: 105; LEFT: 40px; POSITION: absolute; TOP: 24px" runat ="server"
Width ="248px" Font-Size ="X-Small" > 股票输入(代码、拼音缩写、全词) </ asp:label >
< Ajax:AjaxLookup id ="axLookup1" style ="Z-INDEX: 102; LEFT: 48px; POSITION: absolute; TOP: 296px"
Width ="128px" Runat ="server" ItemStyleSpacing ="10px" ItemStylePadding ="1px 0px 1px 0px" ItemStyleBorderBottom ="0px"
FontWeight ="bold" FontSize ="12px" BackgroundColor ="#EEE" DivBorder ="2px solid red" DivPadding ="2px"
DivFont ="Arial" HighlightColor ="#C30" CallBackFunction ="axlDemo.GetSearchItems" Visible ="False" />
< asp:label id ="Label2" style ="Z-INDEX: 101; LEFT: 264px; POSITION: absolute; TOP: 264px" runat ="server"
Width ="96px" Visible ="False" > Control #2 </ asp:label >
< Ajax:AjaxLookup id ="axLookup2" style ="Z-INDEX: 104; LEFT: 264px; POSITION: absolute; TOP: 296px"
Width ="128px" CallBackFunction ="axlDemo.GetSearchItems" HighlightColor ="gray" DivFont ="Arial"
DivPadding ="2px" DivBorder ="4px solid blue" BackgroundColor ="#EEE" FontSize ="12px" FontWeight ="bold"
DivWidth ="200px" ItemStyleBorderBottom ="0px" ItemStylePadding ="1px 0px 1px 0px" ItemStyleSpacing ="10px"
Runat ="Server" Visible ="False" />
</ form >
</ body >
</ HTML >
附带示例:查询股票代码(分别可使用股票代码、名字拼音缩写名字来获取自动建议)
http://files.cnblogs.com/heekui/AjaxNET_Lookup_Control_2.rar