WebService和AngularJS实现模糊过滤查询
WebService和AngularJS实现模糊过滤查询
【概要】
【术语】
【完成效果】



.png)
一、创建数据库

.png)
二、创建项目

三、编写BLL层

1 public class ExampleBLL
2 {
3 /// <summary>
4 /// 获取datatable
5 /// </summary>
6 /// <returns> datatable</returns>
7 public DataTable GetDataTable()
8 {
9 DataTable dataTable = new DataTable();
10 using (SQLiteConnection conn = new SQLiteConnection(@"Data Source =" + HttpContext.Current.Server.MapPath("~/example.db" ) + ";"))
11 {
12 SQLiteCommand cmd = conn.CreateCommand();
13 cmd.CommandText = "select * from users";
14 cmd.CommandType = CommandType.Text;
15
16 if (conn.State != ConnectionState .Open)
17 {
18 conn.Open();
19 }
20 SQLiteDataReader dr = cmd.ExecuteReader(CommandBehavior .CloseConnection);
21 dataTable.Load(dr);
22 }
23 return dataTable;
24 }
25
26 /// <summary>
27 /// 根据DataTable生成Json
28 /// </summary>
29 /// <param name="table"> datatable</param>
30 /// <returns> json</returns>
31 public string DataTableToJson(DataTable table)
32 {
33 if (table == null || table.Rows.Count == 0)
34 {
35 return string .Empty;
36 }
37
38 var sb = new StringBuilder();
39 sb.Append( "[");
40
41 string[] columnName = new string[table.Columns.Count];//列名数组
42 for (int i = 0; i < table.Columns.Count; i++)
43 {
44 columnName[i] = table.Columns[i].ColumnName.ToLower();//列名小写
45 }
46 //拼接列
47 for (int i = 0; i < table.Rows.Count; i++)
48 {
49 sb.Append( "{");
50 for (int j = 0; j < columnName.Length; j++)
51 {
52 sb.Append( "\"" + columnName[j] + "\":\"" + table.Rows[i][j].ToString() + "\"" );
53 if (j < columnName.Length - 1)
54 {
55 sb.Append( ",");
56 }
57 }
58 sb.Append( "}");
59 if (i < table.Rows.Count - 1)
60 {
61 sb.Append( ",");
62 }
63 }
64 sb.Append( "]");
65
66 table = null;
67 return sb.ToString();
68 }
69 }

四、编写WebService

1 /// <summary>
2 /// WebService 的摘要说明
3 /// </summary>
4 [ WebService(Namespace = "http://tempuri.org/" )]
5 [ WebServiceBinding(ConformsTo = WsiProfiles .BasicProfile1_1)]
6 [System.ComponentModel. ToolboxItem(false )]
7 [System.Web.Script.Services.ScriptService]
8 public class WebService : System.Web.Services. WebService
9 {
10 [ WebMethod]
11 [ ScriptMethod(UseHttpGet = true , ResponseFormat = ResponseFormat.Json)]
12 public void GetUsersJson()
13 {
14 ExampleBLL BLL = new ExampleBLL();
15 JavaScriptSerializer js = new JavaScriptSerializer();
16 Context.Response.Clear();
17 Context.Response.ContentType = "application/json";
18 UserData data = new UserData();
19 data.Message = BLL.DataTableToJson(BLL.GetDataTable());
20 Context.Response.Write(js.Serialize(data.Message));
21 }
22
23 public class UserData
24 {
25 public string Message { get; set; }
26 }
27 }

1 < webServices>
2 < protocols>
3 < add name ="HttpGet "/>
4 < add name ="HttpPost "/>
5 </ protocols>
6 </ webServices>
五、访问WebService

六、编写html

1 <html ng-app="serviceConsumer">
2 <head>
3 <title> web service</title >
4 <style type="text/css">
5 #tableResult
6 {
7 width: 500px ;
8 margin-top: 15px ;
9 border-top: 1px solid #3d3d3d;
10 border-left: 1px solid #3d3d3d;
11 }
12 #tableResult td
13 {
14 border-right: 1px solid #3d3d3d;
15 border-bottom: 1px solid #3d3d3d;
16 }
17 </style>
18 <script type="text/javascript" src="scripts/angular.min.js"></script>
19 </head>
20 <body>
21 <form id="form1" runat="server">
22 <div>
23 <div ng-controller="usersController">
24 搜索: <input type="text" ng-model="search" />
25 <table id="tableResult" cellspacing="0" cellpadding="3">
26 <thead>
27 <tr style="background-color : #eee;">
28 <td>
29 序号
30 </td>
31 <td>
32 姓名
33 </td>
34 </tr>
35 </thead>
36 <tr ng-repeat="i in users | filter:search">
37 <td style="width : 40px;">
38 {{i.id}}
39 </td>
40 <td>
41 {{i.name }}
42 </td>
43 </tr>
44 </table>
45 </div>
46 <br />
47 </div>
48 <script type="text/javascript">
49 var app = angular.module('serviceConsumer' , []);
50
51 app.controller( 'usersController', function ($scope, $http) {
52 var url = "Asmx/WebService.asmx/GetUsersJson" ;
53 $http.get(url).success( function (data) {
54 var myjson = JSON.parse(data);
55 $scope.users = JSON.parse(myjson);
56 })
57 })
58 </script>
59 </form>
60 </body>
61 </html>

七、完成效果

.png)
八、参考
WebService和AngularJS实现模糊过滤查询的更多相关文章
- Extjs tree 过滤查询功能
转载: http://blog.csdn.net/xiaobai51509660/article/details/36011899 Extjs4.2中,对于treeStore中未实现filterBy函 ...
- Extjs treePanel过滤查询功能【转】
Extjs4.2中,对于treeStore中未实现filterBy函数进行实现,treestore并未继承与Ext.data.Store,对于treePanel的过滤查询功能,可有以下两种实现思路: ...
- 在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式
在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤 ...
- css3图片模糊过滤效果
css3图片过滤效果,鼠标放上后其它图片模糊,鼠标所在位置的图片是清淅的,有效索引出当前的图片,对图片的模糊处理是本特效的亮点,你完全可以将模糊的效果应用于其它的图片特效中,你同样也可借此代码研究一下 ...
- 在ASP.NET Core中通过EF Core实现一个简单的全局过滤查询
前言 不知道大家是否和我有同样的问题: 一般在数据库的设计阶段,会制定一些默认的规则,其中有一条硬性规定就是一定不要对任何表中的数据执行delete硬删除操作,因为每条数据对我们来说都是有用的,并且是 ...
- css3图片模糊过滤特效
体验效果:点击这里查看效果 代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- ELK学习总结(3-2)elk的过滤查询
和一般查询比较,filter查询:能够缓存数据在内存中,应该尽可能使用 建立测试数据 查看测试数据 1.filtered查询 GET /store/products/_search { "q ...
- 【EF6学习笔记】(三)排序、过滤查询及分页
本篇原文地址:Sorting, Filtering, and Paging 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根据自己的理解做了 ...
- EF6 学习笔记(三):排序、过滤查询及分页
EF6 学习笔记索引目录页: ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇:EF6 学习笔记(二):操练 CRUD 增删改查 本篇原文地址:Sorting, Filterin ...
随机推荐
- 由于抽签HT For Web ComboBox下拉框组件
传统HTML5的下拉框select仅仅能实现简单的文字下拉列表,而HT for Web通用组件中ComboBox不仅可以实现传统HTML5下拉框效果,并且可以在文本框和下拉列表中加入自己定义的小图标, ...
- 第四章:Django 的模板系统(转)
在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的. 这种做法会导致这些问题: 要做任何设计上的更改就必须改写 Python 代 ...
- 十天学Linux内核之第七天---电源开和关时都发生了什么
原文:十天学Linux内核之第七天---电源开和关时都发生了什么 说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自 ...
- HBase写的初步测试中的表现
底 第四年HBase.在上线的机HBase集群做一个初步的测试写入性能.下面具体说明做测试内容. 说明 HBase周围环境 0.96版本号,8台region server.默认配置 写数据说明 单co ...
- Java生成CSV文件
1.新CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; im ...
- 取一种类型里面的产品销售前3甲的数据Sql
需求:取出每种分类里面的销售前3甲的产品信息 表设计如下图: 数据如下: 两种方法可以实现: 1. SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION ...
- Java
递归算法
其基本思路是递归算法设计:对于一个复杂的问题,原问题分为几个子问题相似相对简单.继续下去,直到孩子可以简单地解决问题,这是导出复发,因此,有复发的原始问题已经解决. 关键是要抓住: (1)递归出口 ( ...
- Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试
Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试 需要FQ才能安装,使用时应该不用FQ了,除非使用postman的历史记录功能: 非常棒的C ...
- Tomcat剖析(三):连接器(1)
Tomcat剖析(三):连接器(1) 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器(1) 4 ...
- linux在构建SVNserver
最近搞了一个云计算server,一些尝试部署server相关的东西.作为用显影剂server.首先要考虑的是建立SVNserver.关于构建过程记录.方便以后. 一.安装svn软件.有些云server ...