UI图:

功能实现:

  1.勾选住哪个选项之后,就加入了筛选。支持姓名的模糊查询。

  2.对筛选出来的数据可以直接修改,并更新回数据库。

说明:显示的数据来自T_User表。数据显示控件使用的是 ListView,数据源控件使用的是 ObjectDataSource,已有T_User表的数据集 。

思路:ListView使用数据源ObjectDataSource,ObjectDataSource指定使用DS_User数据集,Select方法使用默认的方法。这样,刚进入界面,显示所有的用户。

怎么实现筛选呢方法1:有三个条件,就有9中可能情况,在DS_User数据集中定义9个方法。通过判断,指定ObjectDataSource使用哪个Select方法就可以了。

方法2:当点击查询后,根据筛选生成特定的Select语句。然后修改ObjectDataSource使用的Select方法就可以了。

方法3:不使用ObjectDataSource,根据筛选生成特定的Select语句,自己通过SqlHelper执行,将结果显示在GridView中。

分析:方法1过于繁琐,当只需要定义1、2个方法时,还是可以使用的。方法3:不能对筛选出的结果数据进行修改,比如说更新了。因此,当只是显示数据的时候,可以使用。

而要使用方法2:就要解决这个问题:

    如何通过代码来设置ObjectDataSource使用数据集中的哪个Select方法
    如何通过代码来设置数据集中的Select方法的Select语句

实现代码:

定义一个WherePart属性,来接收Where部分的语句。并设置MySelect方法。

  在数据集DS_User界面右击选择【查看代码】添加如下代码

namespace InvoicingManagement.DAL.DS_UserTableAdapters
{
public partial class T_UserTableAdapter
{
public static string WherePart { get; set; } public virtual DS_User.T_UserDataTable MySelect() { SqlCommand cmd = this.Connection.CreateCommand();
cmd.CommandText = "SELECT UserId, FWorkId, FName, FPassword, LevelId FROM dbo.T_User " + WherePart;
cmd.CommandType = System.Data.CommandType.Text; this.Adapter.SelectCommand = cmd;
DS_User.T_UserDataTable dataTable = new DS_User.T_UserDataTable();
this.Adapter.Fill(dataTable);
return dataTable;
}
}
}

在查询按钮中的

       //根据筛选得到Where部分的字符串
       List<string> list = new List<string>();
list.Add(" LevelId>2 ");// 不能检索到【管理员】以上权限的人员,这也解决了【“ddl_level”有一个无效 SelectedValue,因为它不在项目列表中。】的问题
if (chkWorkId.Checked)
{
list.Add(string.Format(" FWorkId = {0} ", txtWorkId.Text.Trim()));
}
if (chkName.Checked)
{
list.Add(string.Format(" FName like '%{0}%' ", txtName.Text.Trim()));
}
if (chkLevel.Checked)
{
list.Add(string.Format(" LevelId = {0} ", ddl_level.SelectedValue));
}
        
string s = " where " + string.Join("and", list.ToArray());
      
       //设置Select语句
T_UserTableAdapter.WherePart = s;
       //指定使用哪个方法
ods_User.SelectMethod = "MySelect";
listview_User.DataBind();

在DataSet中添加自定义方法与属性

为数据集DataSet的属性复制为数据集指定使用哪个Select语句

aspnet中通过多条件筛选来显示数据的实现的更多相关文章

  1. Struts1.x 中处理乱码及通过标签显示数据

    1.通过filter解决乱码问题 网页的请求到达之前,先要经过filter的处理: 提取数据出现乱码:request.setCharacterEncoding("UTF-8"); ...

  2. c# winform 中DataGridView绑定List<T> 不能显示数据

    遇到问题 DataGridView绑定List后,List更新后再次绑定不显示数据 datagridview 绑定数据源的时候 用List是不能显示修改内容的..要用binginglist<T& ...

  3. python实例:在列表,字典,集合中,根据条件筛选数据

    1. 从列表中过滤掉 负数 from random import randint # 随机生成列表 data = [randint(-10, 10) for _ in range(10)] print ...

  4. 帝国CMS模板中的多条件筛选方法

    需求:点击某一条目,调出与该条目关键词相关的类似词条数据 要点: 1.帝国CMS灵动标签使用   [e:loop= 2.专题关键词筛选  enewszt 3.SQL语句筛选   select * fr ...

  5. c# 在datagridview中添加comboboxcolumn 绑定数据库读取显示数据

    datagridview中的comboboxcolumn 从绑定的数据库中读取显示时,只需要注意一点,就是sql语句加个 CStr() 字符串转换函数即可,如下: SELECT CStr(XXX) a ...

  6. Django工程中使用echarts怎么循环遍历显示数据

    前言: 后面要开发测试管理平台,需要用到数据可视化,所以研究了一下 先看下最后的图吧,单击最上方的按钮可以控制柱状图显隐 views.py # -*- coding: utf-8 -*- from _ ...

  7. mvc中ViewBag返回数组如何循环显示数据

    直接在for循环里面定义出viewbag @for (int i = 0; i < ViewBag.permission.Count; i++) { var permission = ViewB ...

  8. SAP ALV中同一列的不同行显示不同的小数位,并能够总计,小计

    物料数量字段,根据物料类型的不同,来显示不同的小数位:要求有点苛刻: 首先,要能够总计和小计的话,这一列的字段类型必须是数值类型. 这样的话,就不能通过截取的方式改变不同行的小数位. 以下是两种思路: ...

  9. c#中如何不通过后台直接用js筛选gridview中的数据条件筛选查询?

    js: //条件筛选 var showstate = true; function imagechange() { if (showstate) { $('#_toggle').hide(500, f ...

随机推荐

  1. 201521123016 《Java程序设计》第3周学习总结

    1. 本周学习总结 2. 书面作业 2.1代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  2. 201521123073 《Java程序设计》第1周学习总结

    1.本章学习总结 你对于本章知识的学习总结 1.Java中使用Scanner处理输入,需要注意如下几个地方 程序开头必须import java.util.Scanner导入Scanner类. 使用Sc ...

  3. 201521123100 《Java程序设计》 第1周学习总结

    1. 本章学习总结 1.简单了解学习了Java及其开发环境,学习使用了Notepad++&eclipse开发软件的使用 2.熟练完成了使用Notepad++运行第一个Java程序"H ...

  4. latch session allocation

    应用反馈上午10点左右出现大量应用连接数据库报错 采集9点-10点和10点-11点的AWR报告进行分析 DB时间明显差异,再继续分析等待事件 可以看出有session相关的Latch等待事件,查看相关 ...

  5. 12.Linux之输入子系统分析(详解)

    版权声明:本文为博主原创文章,转载请标注出处:   在此节之前,我们学的都是简单的字符驱动,涉及的内容有字符驱动的框架.自动创建设备节点.linux中断.poll机制.异步通知.同步互斥/非阻塞.定时 ...

  6. Spring-java-模板设计模式

    1,模板设计模式指的是将相应的模板方法提取出来在专门的位置定义,然后把相同调用过程操作,通过模板来实现对于模板设计模式而言,一般有两种实现方式 1)基于继承的实现 2)基于组合的实现 Spring的J ...

  7. Struts 2.5 Filter mapping specifies an unknown filter name [struts2]

    问题一:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start ...

  8. oracle 角色

    一.介绍角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理.假定有用户a,b,c为了让他们都拥有如下权限1. 连接数据库2. 在scott.emp表上select,insert,up ...

  9. SAP Gateway简介

    SAP Gateway在S4/HANA时代的ABAP开发模型中有着重要的地位.SAP Gateway是什么?它对ABAP开发有怎样的影响?可以为我们提供哪些方便?这篇译文将浅要地讨论这些话题. SAP ...

  10. 对redux的理解

     redux原理 某公司有物流(actionType).电商(actionType).广告(actionType)3块业务,在公司财务系统(state)统一记录着三块业务分别赚取到的资金.某天,电商业 ...