C#---ASP页面的下拉框模糊查询功能
- 基础方法支持:
一. DataTable 转换成 Json
换句话说如何在ASP.NET将一个DataTable序列化为 Json数组,或者如何从一个DataTable返回一个Json字符串。
使用 JavaScriptSerializer.
首先我们添加System.Web.Script.Serialization命名空间,如下:
using System.Web.Script.Serialization;
JavaScriptSerializer这个类是由异步通信层内部使用来序列化和反序列化数据。如果序列化一个对象,就使用序列化方法。反序列化Json字符串,使用Deserialize或DeserializeObject方法。在这里,我们使用序列化方法得到Json格式的数据。代码以下:
public static class Data2Json
{
public static String convertJson(DataTable dt)
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
javaScriptSerializer.MaxJsonLength = Int32.MaxValue;
ArrayList arrayList = new ArrayList();
foreach (DataRow dataRow in dt.Rows)
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
foreach (DataColumn dataColumn in dt.Columns)
{
dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString());
}
arrayList.Add(dictionary);
}
return javaScriptSerializer.Serialize(arrayList);
}
}
二. 加入一般处理程序,将上一步的Json字符串写入HTTP响应输出流,传到前端页面
<%@ WebHandler Language="C#" Class="Xcode" %> using System;
using System.Web;
using SysManage;
using System.Data;
public class Xcode : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
string str = context.Request["type"];
string sql = string.Format("select * from XCode where XCODE like '{0}%'", str);
Database dt = new Database();
DataTable data = dt.ExecuteSql(sql); context.Response.Write(Data2Json.convertJson(data));
} public bool IsReusable
{
get { return false; }
}
}
- 前端实现方法:
其中要使用:jquery 的 autocomplete.js ,自行搜索引用即可
<script type="text/javascript">
function dataFind() {
var fl = $("input[name='Rblflcode']:checked").val();
$.ajax({
contentType: "application/json",
url: "../Xcode.ashx?type=" + fl,
dataType: "json",
success: function (msg) {
if (msg == null) {
}
else if (msg != null) {
jQuery(function ($) {
$("#flxzTb").autocomplete(msg, {
minChars: 0,
autoFill: false, //是否选多个,用","分开
mustMatch: false, //是否全匹配, 如数据中没有此数据,将无法输入
matchContains: true, //是否全文搜索,否则只是前面作为标准
scrollHeight: 300,
scroll: true,
width: $("#flxzTb").width(),
multiple: false,
formatItem: function (row, i, max) { //显示格式
return "<span style='width:" + $("#flxzTb").width() + "px;float:left;font-style: normal;font-weight:normal;' >" + "[" + row.XCODE + "]---" + row.flmc + " </span>";
},
formatMatch: function (row, i, max) { //以什么数据作为搜索关键词,可包括中文,
return row.flmc;
},
formatResult: function (row) {
return row.flmc ; //返回结果
}
});
});
}
}
});
}
</script>
其中 ID = flxzTb 的TextBox控件用于查询显示。 url: "../Xcode.ashx?type=" + fl, 调用 Xcode.ashx 来处理传入的 xcode 字段用于数据库筛选。
当数据库中存有数据时,通过在TextBox框内键入内容会自动进行相应的内容匹配,以下拉的形式进行显示。
C#---ASP页面的下拉框模糊查询功能的更多相关文章
- 基于bootstrap selectpicker ,实现select下拉框模糊查询功能
1.html代码块 需要引入bootstrap的css js jquery bootstrap.css bootstrap-select.min.css jquery-1.11.3.min.js bo ...
- fineui 实现下拉框模糊查询
官网下拉框模糊查询只能实现首字母模糊匹配,如果实现类似这样的 like '%'+关键字+'%',却没有. 今天群里的没想好同学分享了,前后模糊匹配代码. 代码示例: <body> ...
- js实现下拉框模糊查询
keyup方法触发模糊查询 list : Array<any> //下拉列表所有内容 filtList:Array<any> //过滤后的内容 inputContent : s ...
- Bootstrap Search Suggest 下拉框模糊查询
源码地址:https://github.com/lzwme/bootstrap-suggest-plugin 有时间会完善!暂时有点忙!
- Asp.net实现下拉框和列表框的连动
走过了牛腩老师的新闻发布系统,漫游过了孙鑫老师的Html,在427沐浴第一缕冬日阳光的美丽月底,小编迎来了北大青鸟的Asp.net,北大青鸟,高大上的赶脚有么有,哈哈哈,开始了小编的.net之旅. 首 ...
- Java Swing应用程序 JComboBox下拉框联动查询
在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...
- ASP.NET MVC 下拉框的传值的两种方式
以前使用WebForm变成时,下拉框传值只需直接在后台绑定代码就可以了.现在我们来看看在MVC中DropDownList是如果和接受从Controller传过来的值的. 第一种:使用DropDownL ...
- Jquery+Ajax下拉框级联查询
- checkboxlist 下拉框多选功能 ,模拟dropdownlist带复选框效果
前台代码 01.<html xmlns="http://www.w3.org/1999/xhtml"> 02.<head runat="server&q ...
随机推荐
- Time travel HDU - 4418(高斯消元)
Agent K is one of the greatest agents in a secret organization called Men in Black. Once he needs to ...
- ASP.NET知识点汇总
一 ,html属性20181113常用的居中方法1 text-align2 float3 margin (margin-left matgin-right margin-bottom margin-t ...
- 【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系
[Linux网络编程]TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: conn ...
- ZooKeeper-客户端命令 zkCli
执行 bin/zkCli 文件进入客户端 查看帮助 help ZooKeeper -server host:port cmd args stat path [watch] set path data ...
- SpringBoot项目@RestController使用 redirect 重定向无效
Spring MVC项目中页面重定向一般使用return "redirect:/other/controller/";即可. 而Spring Boot当我们使用了@RestCont ...
- 液晶流在齐次 Besov 空间中的正则性准则
在 [Zhang, Zujin. Regularity criteria for the three dimensional Ericksen–Leslie system in homogeneous ...
- python,可变对象,不可变对象,深拷贝,浅拷贝。
学习整理,若有问题,欢迎指正. python 可变对象,不可变对象 可变对象 该对象所指定的内存地址上面的值可以被改变,变量被改变后,其所指向的内存地址上面的值,直接被改变,没有发生复制行为,也没有发 ...
- 2.解决虚拟机中centos联网的问题
首先:打开虚拟机的编辑菜单,选择“虚拟机网络编辑器” 虚拟机网络编辑器 在虚拟机网络编辑器中选择还原默认设置 接下来开启CentOS7虚拟机 在这里需要注意的是必需以管理员身份来进行设置,所以要用管理 ...
- ES6走一波 数组的扩展
Array flat 数组实例的扁平化方法(浏览器支持不佳) 建议使用 lodash的 flatten
- Ansible------角色
什么是角色 角色是一种解决问题的思想,也是一种规范. 目录 角色的目录结构如下: files: 存放由copy或script模块等调用的文件. templates: template模块查找所需要模板 ...