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 相关文章推荐
云网广告中的代码,提示出错,大家找找
Nov 21 Javascript
表单(FORM)的一些实用效果代码
Mar 25 Javascript
Javascript 面向对象之重载
May 04 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
Mar 17 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
分享一则JavaScript滚动条插件源码
Mar 03 Javascript
canvas绘制多边形
Feb 24 Javascript
vue 2.0组件与v-model详解
Mar 27 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
Jun 15 Javascript
JavaScript实现图片拖曳效果
Sep 08 Javascript
React diff算法的实现示例
Apr 20 Javascript
jQuery HTML css()方法与css类实例详解
May 20 jQuery
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
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
php 生成短网址原理及代码
2014/01/23 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
使用js如何实现全选与全不选
2013/12/30 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
python str字符串转uuid实例
2020/03/03 Python
Python实现播放和录制声音的功能
2020/08/12 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
求职信格式范文
2015/03/19 职场文书
搞笑结婚保证书
2015/05/08 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书