JavaScript实现在textbox输入时自动去数据库匹配并找出类似值列出,选择后记得将值填入本textbox及下一个textbox
1.
<script src='<%= Application["rootURL"] %>JS/jquery-1.4.1.min.js' type="text/javascript"></script>
<script src='<%= Application["rootURL"] %>JS/jquery.cookie.js' type="text/javascript"></script>
<script src='<%= Application["rootURL"] %>JS/jquery.autocomplete.js' type="text/javascript"></script>
<link rel="Stylesheet" href='<%= Application["rootURL"] %>JS/jquery.autocomplete.css' type="text/css"/> <script language="javascript" type="text/javascript"> var txtText7 = "#" + '<%= new DynamicControl(this, "Text7").ClientID%>';
var url1 = '<%= Application["rootURL"] %>文件夹名/文件名.ashx';
$(function () {
$(txtText7).autocomplete(url1);
});
</script>
2.新建一个Generic Handler文件
using System;
using System.Collections;
using System.Data;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data.Common;
using System.Diagnostics; namespace 文件夹名{
/// <summary>
/// Summary description for 文件名
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class 文件名 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
if (!Sql.IsEmptyString(context.Request.QueryString["q"]))
{
DataTable result = new DataTable();
string qName = context.Request.QueryString["q"].Trim();
if (!String.IsNullOrEmpty(qName))
{
result = GetCityName(qName, );
}
else
{
return;
} foreach (DataRow row in result.Rows)
{
context.Response.Write(row["NAME"] + "\n");
}
}
context.Response.End(); } public static DataTable GetCityName(string sPrefix, int count)
{
DataTable dt = new DataTable(); DbProviderFactory dbf = DbProviderFactories.GetFactory();
using (IDbConnection con = dbf.CreateConnection())
{
string sSQL;
sSQL = "select top {0} CityName+' ('+StateName+')' AS NAME " + ControlChars.CrLf
+ " from USA_State_City " + ControlChars.CrLf
+ " where CityName like @NAME " + ControlChars.CrLf
+ " order by CityName asc " + ControlChars.CrLf; using (IDbCommand cmd = con.CreateCommand())
{
cmd.CommandText = string.Format(sSQL, count);
Sql.AddParameter(cmd, "@NAME", sPrefix + "%");
try
{
using (DbDataAdapter da = dbf.CreateDataAdapter())
{
((IDbDataAdapter)da).SelectCommand = cmd;
da.Fill(dt);
}
}
catch (Exception ex)
{
SplendidError.SystemError(new StackTrace(true).GetFrame(), ex);
return null;
}
}
}
return dt;
} public bool IsReusable
{
get
{
return false;
}
}
}
}
3.重写jquery.autocomplete.js的selectCurrent方法
function selectCurrent() {
var selected = select.selected();
if( !selected )
return false; var v = selected.result;
previousValue = v; if ( options.multiple ) {
var words = trimWords($input.val());
if ( words.length > ) {
var seperator = options.multipleSeparator.length;
var cursorAt = $(input).selection().start;
var wordAt, progress = ;
$.each(words, function(i, word) {
progress += word.length;
if (cursorAt <= progress) {
wordAt = i;
return false;
}
progress += seperator;
});
words[wordAt] = v;
v = words.join( options.multipleSeparator );
}
v += options.multipleSeparator;
} var vals = $input.val().split(",");
var txtval="";
if (vals.length > ) {
for (k = ; k < vals.length - ; k++) {
txtval += vals[k]+", ";
}
txtval += v;
}
else { txtval = v; }
$input.val(txtval);
hideResultsNow(); var iPos = selected.data.toString().indexOf("(") var sName= selected.data.toString().substring(,iPos); var IDendwith = $input.attr("ID").substring($input.attr("ID").lastIndexOf("_")+);
if (IDendwith=="TEXT7") {
$input.val(sName);
var txtStateID=IDendwith+;
var lenth=selected.data.toString().length-;
var sState=selected.data.toString().substring(iPos+,lenth);
$input.parent().parent().next().children().children().val(sState);
}
else
{
$input.trigger("result", [selected.data, selected.value]);
} return true;
}
JavaScript实现在textbox输入时自动去数据库匹配并找出类似值列出,选择后记得将值填入本textbox及下一个textbox的更多相关文章
- C#按回车Enter使输入焦点自动跳到下一个TextBox的方法收集
在录入界面中,用户往往需要按回车键时光标自动跳入下一个文本框,以方便录入操作.在C#中实现该功能有多种方法,以下是小编收集的不使用TAB键,而直接用回车键将光标转到下一个文本框的实现方法. 一.利用W ...
- C++ Combobox输入时自动完成
Combobox 在输入时自动完成 关键点 实现过程 BOOL m_bAuto; BOOL CProject02Dlg::PreTranslateMessage(MSG* pMsg) { i ...
- eclipse输入时自动提示
当输入一部分代码时,其他的候选代码提示出来,可以提高开发的效率,设置方法如下: 选择Window -> Perferences -> Java -> Editor -> Con ...
- EditText(3)输入时自动完成功能
在android输入自动完成功能由EditText的子类 AutoCompleteTextView 实现.如下: 1,在xml中使用 <AutoCompleteTextView android: ...
- 使用css使textbox输入内容自动变大写
<style type="text/css"> input[type="text"] { text-transform:uppercase; } & ...
- easyui textbox 输入小写自动变大写,easyui textbox 绑定oninput事件 easyui textbox 绑定propertychange事件
<input id="id" class="easyui-textbox" name="id" value="@Model. ...
- 设置EntityFramework 在开发时自动更新数据库
1. NuGet 下载EntityFramework. 2. 定义Context 和 打开NuGet 命令 执行 Enable-Migrations , Libaray.DAL.Migrations. ...
- 解决SpringBoot+JPA中使用set方法时自动更新数据库问题
项目进行了三分之二了,突然出现一个很诡异的bug,数据库存储的用户表中密码信息总是自动消失一部分,头疼了几天后突然想起同事有个对低权限用户查询的用户信息向前台传送时会把密码设成null后再传输,心想是 ...
- 在TextBox里面仅仅允许数字,按Enter键进入下一个TextBox
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> ...
随机推荐
- A+B Problem 详细解答 (转载)
此为详细装13版 转载自:https://vijos.org/discuss/56ff2e7617f3ca063af6a0a3 全文如下,未作修改,仅供围观,不代表个人观点: 你们怎么都在做网络流,不 ...
- 【BZOJ】1069: [SCOI2007]最大土地面积(凸包+旋转卡壳)
http://www.lydsy.com/JudgeOnline/problem.php?id=1069 显然这四个点在凸包上,然后枚举两个点找上下最大的三角形即可. 找三角形表示只想到三分QAQ.. ...
- POJ 1191 棋盘分割(DP)
题目链接 大体思路看,黑书...其他就是注意搞一个in数组,这样记忆化搜索,貌似比较快. #include <cstdio> #include <cstring> #inclu ...
- [转帖] Symbol Emotions Sticker 英文符号表情大全
:-) smile :-] polite smile :-( frown :-[ another frown :-/ or :-\ skepticism, annoyance, or a slight ...
- linux 2.6.37-3.x.x x86_64
/* * linux 2.6.37-3.x.x x86_64, ~100 LOC * gcc-4.6 -O2 semtex.c && ./a.out * 2010 sd@fuckshe ...
- Reset RequiredFieldValidator 重置 验证控件
<td style="width:100px;">姓名<span class="must_star">*</span>< ...
- PHP Static Self 的区别
<?php class Human{ public static function whoami() { echo "来自父类的whoami"; } public stati ...
- jQuery前端验证多种方式
JQuery Validate使用总结:一.导入js库<script src="../js/jquery.js" type="text/javascript&quo ...
- panel,dialog,window组件越界问题汇总
之前分别写过panel,dialog,window三个组件因为拖曳或者reSize造成组件越界而无法还原的问题,两篇文章分别针对拖曳和reSize给出了解决方案.不过根据朋友的反馈,reSize的解决 ...
- ThinkPHP 3.2.2 实现持久登录 ( 记住我 )
实现持久登录,即用户在登录时,勾选了"记住我"之后,无论是否关闭浏览器,只要不退出登录,在指定的时间内始终保持登录状态(缺点是在另一台电脑上登录过后,之前那台电脑就不能继续保持登录 ...