大家好! 怎样实现在文本框输入数据的同时,列出数据库中与之相似的内容? 比如在输入手机号码的文本框中输入1时,文本框下面列出数据库中所有以1开头的手机号;输到138时,列出所有以138开头的手机号...用text的onchange()查询数据库的结果怎样显示在文本框下面呢?谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Index.html文件:<html><head><script>var xmlHttp;function createXMLHttpRequest(){ if(window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); }}function startRequest(data){ createXMLHttpRequest(); try { xmlHttp.onreadystatechange = function(){handleStateChange(data);} xmlHttp.open("GET", "data.xml", true); xmlHttp.send(null); } catch(exception) { alert("xmlHttp Fail"); }}function handleStateChange(data){ if(xmlHttp.readyState == 4) { if (xmlHttp.status == 200 || xmlHttp.status == 0) { var root = xmlHttp.responseXML.documentElement; try { var info = root.getElementsByTagName(data)[0]; var text = info.firstChild.nodeValue; var array = text.split("-"); var obj = document.getElementById("div1"); obj.style.display = "block"; obj.innerHTML = ""; for(var i=0; i<array.length; i++) { obj.innerHTML = obj.innerHTML + "<span style='display:block' onclick='spanClick()' onmouseover='spanMouseOver()'>" + array[i] + "</span>"; } } catch(exception) { var obj = document.getElementById("div1"); obj.style.display = "block"; obj.innerHTML = ""; } } }}function textChange(data){ if(data == "") { var obj = document.getElementById("div1"); obj.style.display = "block"; obj.innerHTML = ""; } else { startRequest(data); }}function spanClick(){ var spanObj=event.srcElement; var textObj = document.getElementById("text1"); textObj.value = spanObj.innerHTML; var divObj = document.getElementById("div1"); divObj.style.display = "none"; divObj.innerHTML = "";}var oldSpanObj;function spanMouseOver(){ if(oldSpanObj != null) { oldSpanObj.style.backgroundColor = "#FFFFFF"; } var spanObj=event.srcElement; spanObj.style.backgroundColor = "#FF7788"; oldSpanObj = spanObj;}</script></head><body><input type="text" id="text1" onpropertychange="textChange(this.value);" /><br><div id="div1" style="border:1px solid #8877EE;display:none;position:absolute;width:146;background-color:#EEFFFF"></div></body></html>注:position:absolute实现div浮动且显示时不占位data.xml文件:<?xml version="1.0" encoding="GB2312"?> <root> <1>13878888887-13888888888-12688888889</1> <13>1378888887-13888888888</13> <138>13888888887</138></root> 如果不考虑系统结构的话,很难给出方案。比如是WinForm还是Web Form。如果是WinForm,客户端和服务器端的通信方式也是一个问题。 不好意思,不好意思是 WinForm结构的.谢谢!! winform也好辦,如果數據量不大你就乾脆在加載時把所有手機號從數據庫中取出來放在DataTable dtTemp中,然後輸入時用dtTemp.Select("...")找出相似號碼綁定到一個只有一列的GridControl,接下來就自己搞定吧 用数据模糊查询建议用combobox,textbox好象没下拉框功能吧!如果要效果的话,要加其它控件if(combobox1.text!=""){try{connect=".............(SQL数据连接语句)略";connect.open();SQLdataApdater da=new sqldataApdater("select 字段 from 表 where 字段 like '%"+combobox1.text+"%'",connect);dataset ds=new dataset();da.fill(ds);combobox1.datasource=ds.tables[0];combobox1.displaymeber="字段";combobox1.valuemeber="字段";connect.close();}catch{}else............................................... 使用ajax技术可以使用div来显示,div中添加一个listbox,在listbox中添加查询的内容 WINFORM中用ComboBox把然后用TextChanged事件,里面就进行查询private void currencyTextBox_TextChanged(object sender, EventArgs e){ try { } catch { }} if (answerModel.AnswerStatus == 0) System.NullReferenceException: 未将对象引用设置到对象的实例 wince开发,如何获取PDA的目录路径 jsion 字符串的值,最长可以是多少个字符 C#分布式系统之简要方案? 如何显示:注册表的TreeNode节点的上下文菜单显示(展开/折叠) 请教一个简单问题 如何获得自动生成控件的消息. .NET如何做个用户自己的控件,然后放到工具箱里去? 请教各位大侠:c#中怎样使用邮槽 用户登录子系统的实现 请问有没有高手来讲一下extern关键字 IDbConnection 不明白
<html>
<head>
<script>
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function startRequest(data)
{
createXMLHttpRequest();
try
{
xmlHttp.onreadystatechange = function(){handleStateChange(data);}
xmlHttp.open("GET", "data.xml", true);
xmlHttp.send(null);
}
catch(exception)
{
alert("xmlHttp Fail");
}
}
function handleStateChange(data)
{
if(xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200 || xmlHttp.status == 0)
{
var root = xmlHttp.responseXML.documentElement;
try
{
var info = root.getElementsByTagName(data)[0];
var text = info.firstChild.nodeValue;
var array = text.split("-");
var obj = document.getElementById("div1");
obj.style.display = "block";
obj.innerHTML = "";
for(var i=0; i<array.length; i++)
{
obj.innerHTML = obj.innerHTML + "<span style='display:block' onclick='spanClick()' onmouseover='spanMouseOver()'>" + array[i] + "</span>";
}
}
catch(exception)
{
var obj = document.getElementById("div1");
obj.style.display = "block";
obj.innerHTML = "";
}
}
}
}
function textChange(data)
{
if(data == "")
{
var obj = document.getElementById("div1");
obj.style.display = "block";
obj.innerHTML = "";
}
else
{
startRequest(data);
}
}
function spanClick()
{
var spanObj=event.srcElement;
var textObj = document.getElementById("text1");
textObj.value = spanObj.innerHTML;
var divObj = document.getElementById("div1");
divObj.style.display = "none";
divObj.innerHTML = "";
}
var oldSpanObj;
function spanMouseOver()
{
if(oldSpanObj != null)
{
oldSpanObj.style.backgroundColor = "#FFFFFF";
}
var spanObj=event.srcElement;
spanObj.style.backgroundColor = "#FF7788";
oldSpanObj = spanObj;
}
</script>
</head>
<body>
<input type="text" id="text1" onpropertychange="textChange(this.value);" />
<br>
<div id="div1" style="border:1px solid #8877EE;display:none;position:absolute;width:146;background-color:#EEFFFF">
</div>
</body>
</html>
注:position:absolute实现div浮动且显示时不占位data.xml文件:
<?xml version="1.0" encoding="GB2312"?>
<root>
<1>13878888887-13888888888-12688888889</1>
<13>1378888887-13888888888</13>
<138>13888888887</138>
</root>
比如是WinForm还是Web Form。如果是WinForm,客户端和服务器端的通信方式也是一个问题。
if(combobox1.text!="")
{
try
{
connect=".............(SQL数据连接语句)略";
connect.open();
SQLdataApdater da=new sqldataApdater("select 字段 from 表 where 字段 like '%"+combobox1.text+"%'",connect);
dataset ds=new dataset();
da.fill(ds);
combobox1.datasource=ds.tables[0];
combobox1.displaymeber="字段";
combobox1.valuemeber="字段";
connect.close();
}
catch{}
else...............................................
可以使用div来显示,div中添加一个listbox,在listbox中添加查询的内容
然后用TextChanged事件,里面就进行查询private void currencyTextBox_TextChanged(object sender, EventArgs e)
{
try
{
}
catch
{
}
}