本文主要实现无动态刷新查询后台数据功能,主要用到ajax+ashx+sqlserver进行交互.
首先需要引用Jquery:
<script language="javascript" type="text/javascript" src="../js/jquery.js">
html脚本:
<asp:TextBox ID="tb_corpname" runat="server" MaxLength="100" Width="369px"></asp:TextBox>
<script type="text/javascript"> $(function () { $("#tb_corpname").blur(function () { //鼠标失去焦点事件 var corpname = $("#tb_corpname").val(); $.ajax({ type: "post", //提交方式 url: "/ashx/FZGpyShowData.ashx", //一般处理程序的路径 data: { corpname: corpname }, //向后台传入的值 dataType: "json", //返回值格式 success: function (data) { //返回成功后将要做的事,这里是返回一个表 $("#tb_CreditCode").val(data[0].CreditCode); $("#tb_corpCode").val(data[0].CorpCode); $("#tb_linkTel").val(data[0].LinkPhone); $("#corpProvince option[text='" + data[0].StateName + "']").attr("selected", true); showCity(); $("#corpCity option[text='" + data[0].AdminAreaName + "']").attr("selected", true); $("#tb_address").val(data[0].Address); $("#tb_linkMan").val(data[0].LinkMan); $("#tb_Mobile").val(data[0].LinkMobile); } }); }) }) </script>
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string corpname = context.Request["corpname"].Trim().ToString(); //接收前台传过来的参数 if (corpname != "") { string sql = @"select top 1 Corpname,CreditCode,CorpCode,LinkPhone,StateName,AdminAreaName,LinkMan,LinkMobile,Address from tbProductOrder as a inner join tbStateDic as b on a.StateNum = b.StateNum inner join tbAdminAreaClass on a.CityNum = AdminAreaClassID where Corpname =@Corpname order by Corpname"; sqlParameter[] par = new sqlParameter[1]; par[0] = new sqlParameter("@Corpname", corpname); DataSet ds = DBHerpler.Load(sql, par); string json = SerializerHelper.ToJsonString(ds.Tables[0]); //返回json类型的数据 context.Response.Write(json); context.Response.End(); } }
SerializerHelper类的定义:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; using System.IO; using System.Xml.Serialization; using Newtonsoft.Json; /// <summary> /// SerializerHelper 的摘要说明 /// </summary> public static class SerializerHelper { /// <summary> /// 反序列化XML文件 /// </summary> public static T LoadFromXmlFile<T>(string filepath) where T : class { using (FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read)) { XmlSerializer serializer = new XmlSerializer(typeof(T)); return (T)serializer.Deserialize(stream); } } /// <summary> /// 反序列化XML字符串 /// </summary> public static T LoadFromXmlString<T>(string xml) where T : class { XmlSerializer serializer = new XmlSerializer(typeof(T)); byte[] bytes = Encoding.UTF8.GetBytes(xml); using (MemoryStream stream = new MemoryStream(bytes)) { return (T)serializer.Deserialize(stream); } } /// <summary> /// 序列化XML对象 /// </summary> public static string SavetoXmlString<T>(T entity) where T : class { using (MemoryStream stream = new MemoryStream()) { XmlSerializer serializer = new XmlSerializer(typeof(T)); serializer.Serialize(stream, entity); return Encoding.UTF8.GetString(stream.ToArray()); } } /// <summary> /// 序列化Json对象 /// </summary> public static string ToJsonString(object obj) { return ToJsonString<object>(obj); } /// <summary> /// 序列化Json对象 /// </summary> public static string ToJsonString<T>(T obj) where T : class { string text = JsonConvert.SerializeObject(obj); return text; } /// <summary> /// 反序列化Json字符串 /// </summary> public static T ToJsonObject<T>(string text) where T : class { T obj = (T)JsonConvert.DeserializeObject(text, typeof(T)); return obj; } }
如果向后台传入多个参数在data里面用逗号分割可写多个参数:
data: { corpname: corpname , corpname2: corpname2}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。