javascript 异步页面查询实现代码(asp.net)


Posted in Javascript onMay 26, 2010

1。 testlist.aspx页面:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
<link rel="stylesheet" href="jscript/autoSuggest.css" type="text/css"/> 
<link rel="stylesheet" href="jscript/ac.css" type="text/css"/> 
<script language="Javascript" src="jscript/autoSuggest.js"></script> 
<script language="Javascript" src="jscript/ac.js"></script> 
function ACClient( queryurl, width, objInput, objLable ) 
{ 
this.xmldom = getXmlhttp(); 
this.queryurl = queryurl; 
this.prolist = new Array(); 
this.divwidth = width; 
this.objInput = objInput; 
this.getEligible = function(ac) { 
var eligible = new Array(); 
if (ac.inputText.length < 1) { 
document.getElementById(objInput.name).value = ""; 
document.getElementById(objLable.name).value = ""; 
return eligible; 
} 
var strURL = this.queryurl + escape(ac.inputText) + "&rand=" + Math.random(); 
this.xmldom.open("GET", strURL, false); 
try { 
this.xmldom.send(); 
} 
catch (e) { 
return; 
} 
this.prolist = this.xmldom.responseXML.documentElement.selectNodes("/duxion/object"); 
if (0 == this.prolist.length) { 
return eligible; 
} 
for (var i = 0; i < this.prolist.length; i++) { 
if (i > 15) 
break; 
var node = this.prolist.item(i); 
eligible[eligible.length] = node.getAttribute("fullcontent"); 
} 
ac.div.style.width = this.divwidth; 
return eligible; 
}; 
this.useSuggestion = function( sel ) 
{ 
if( sel>=0 ) 
{ 
var node = this.prolist.item(sel); 
if(typeof(node.getAttribute( "value" )) != "undefined") 
document.getElementById(objInput.name).value = node.getAttribute( "value" ); 
else 
document.getElementById(objInput.name).value = ""; 
if(typeof(node.getAttribute( "content" )) != "undefined") 
document.getElementById(objLable.name).value = node.getAttribute( "content" ); 
else 
document.getElementById(objLable.name).value = ""; 
if (this.objInput.name == "hidfreq_code") { 
document.getElementById("txtfreq_name").value = node.getAttribute("Name"); 
document.getElementById("hidfreq_code").value = node.getAttribute("Code"); 
} 
} 
}; 
return this; 
} 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<%--div 用于显示下拉查询部分--%> 
<div id="autosuggest" style="width:160px;font-size:12px;"><ul></ul></div> 
<div> 
<asp:TextBox ID="txtfreq_name" CssClass="needtext" runat="server" Width="100px"></asp:TextBox><asp:HiddenField 
ID="hidfreq_code" runat="server" /> 
</div> 
</form> 
</body> 
</html> 
<script type="text/javascript"> 
new AutoSuggest(document.getElementById('txtfreq_name'), 
new ACClient("testXml.aspx?tag=yp_frequency&value=", "200px", document.getElementById('hidfreq_code'), document.getElementById('txtfreq_name'))); 
</script>

2。 供查询的xml的testxml.aspx.cs文件
public partial class testXml : BaseForm 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
ListXmlData(); 
} 
private string[] arrwidth; 
private string[] arrfield; 
public string fieldlist = "区域Id,区域名,区域编码,区域层次"; 
public string coloumwidth = "60,10,20,30"; 
//显示xml格式数据 
private void ListXmlData() 
{ 
//各字段的宽度 
string strwhere=""; 
if (Request["value"] != null) 
{ 
strwhere = string.Format(" and Code like '{0}%'", Request["value"].ToString()); 
} 
arrfield = fieldlist.Split(','); 
arrwidth = coloumwidth.Split(','); 
DataTable dtList = new Districts().Search("1=1" + strwhere);// dis // SqlHelper.GetTable(subsys_db, CommandType.Text, strsql, null); 
int list_cols = dtList.Columns.Count; //字段数 
int list_rows = dtList.Rows.Count; //记录数 
string listlable = ""; //显示内容 
XmlDocument xmldoc = new XmlDocument(); 
XmlDeclaration dec = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null); 
xmldoc.InsertBefore(dec, xmldoc.FirstChild); 
XmlElement root = xmldoc.CreateElement("duxion"); 
xmldoc.AppendChild(root); 
//显示表头 
if (list_rows > 0) 
{ 
XmlElement objtitle = xmldoc.CreateElement("object"); 
for (int k = 0; k < list_cols; k++) 
{ 
listlable += "<span style='width:" + arrwidth[k] + ";text-align:center;font-weight:bold;color:#000000;padding-top:2px;'>" + arrfield[k] + "</span>"; 
if (k == arrfield.Length - 1) 
break; 
} 
objtitle.SetAttribute("fullcontent", listlable); 
root.AppendChild(objtitle); 
} 
//显示表头 
//显示数据 
for (int i = 0; i < list_rows; i++) 
{ 
listlable = ""; 
DataRow drList = dtList.Rows[i]; 
XmlElement obj = xmldoc.CreateElement("object"); 
for (int j = 0; j < list_cols; j++) 
{ 
obj.SetAttribute(dtList.Columns[j].ColumnName, drList[j].ToString()); 
if (j <= arrfield.Length - 1) 
{ 
//listlable += "<span style='width:" + arrwidth[j] + "'>" + GetLeftString(drList[j].ToString(), Convert.ToInt16(arrwidth[j])) + "</span>"; 
listlable += "<span style='width:" + arrwidth[j] + "'>" + formatXmlNode(dtList.Columns[j].DataType.ToString(), drList[j].ToString()) + "</span>"; 
} 
} 
obj.SetAttribute("fullcontent", listlable); 
root.AppendChild(obj); 
} 
//显示数据 
//Response.ContentType = "text/xml;charset=utf-8"; 
//Response.ContentType = "text/xml;charset=gb2312"; 
Response.ContentEncoding = System.Text.Encoding.Default; 
Response.ContentType = "text/xml"; 
Response.Clear(); 
Response.Write(xmldoc.OuterXml); 
Response.End(); 
} 
private string formatXmlNode(string field_type, string field_value) 
{ 
string return_value = field_value.Trim(); 
switch (field_type) 
{ 
case "System.Double": 
case "System.Decimal": 
return_value = string.Format("{0:0.###}", Convert.ToDouble(return_value)); 
break; 
} 
return return_value; 
} 
}

3.效果图:
javascript 异步页面查询实现代码(asp.net)
4。 另外的.js以及.css文件见附件
Javascript 相关文章推荐
js 获取Listbox选择的值的代码
Apr 15 Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
jquery的选择器的使用技巧之如何选择input框
Sep 22 Javascript
jquery ajax中使用jsonp的限制解决方法
Nov 22 Javascript
JavaScript的面向对象编程基础
Aug 13 Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 Javascript
JavaScript驾驭网页-CSS与DOM
Mar 24 Javascript
设置jQueryUI DatePicker默认语言为中文
Jun 04 Javascript
JS switch判断 三目运算 while 及 属性操作代码
Sep 03 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
微信小程序数据分析之自定义分析的实现
Aug 17 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
May 26 #Javascript
jquery的$(document).ready()和onload的加载顺序
May 26 #Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
May 26 #Javascript
jQuery select操作控制方法小结
May 26 #Javascript
select 控制网页内容隐藏于显示的实现代码
May 25 #Javascript
JQuery 动态扩展对象之另类视角
May 25 #Javascript
jQuery的Ajax时无响应数据的解决方法
May 25 #Javascript
You might like
用 PHP5 轻松解析 XML
2006/12/04 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
javascript 节点遍历函数
2010/03/28 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
通过自学python能找到工作吗
2020/06/21 Python
Python读写压缩文件的方法
2020/07/30 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
大学生毕业求职的自我评价
2013/09/29 职场文书
护理专业毕业生推荐信
2013/10/31 职场文书
公司节能减排方案
2014/05/16 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
python实现双向链表原理
2022/05/25 Python