aspnet中通过多条件筛选来显示数据的实现
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中通过多条件筛选来显示数据的实现的更多相关文章
- Struts1.x 中处理乱码及通过标签显示数据
1.通过filter解决乱码问题 网页的请求到达之前,先要经过filter的处理: 提取数据出现乱码:request.setCharacterEncoding("UTF-8"); ...
- c# winform 中DataGridView绑定List<T> 不能显示数据
遇到问题 DataGridView绑定List后,List更新后再次绑定不显示数据 datagridview 绑定数据源的时候 用List是不能显示修改内容的..要用binginglist<T& ...
- python实例:在列表,字典,集合中,根据条件筛选数据
1. 从列表中过滤掉 负数 from random import randint # 随机生成列表 data = [randint(-10, 10) for _ in range(10)] print ...
- 帝国CMS模板中的多条件筛选方法
需求:点击某一条目,调出与该条目关键词相关的类似词条数据 要点: 1.帝国CMS灵动标签使用 [e:loop= 2.专题关键词筛选 enewszt 3.SQL语句筛选 select * fr ...
- c# 在datagridview中添加comboboxcolumn 绑定数据库读取显示数据
datagridview中的comboboxcolumn 从绑定的数据库中读取显示时,只需要注意一点,就是sql语句加个 CStr() 字符串转换函数即可,如下: SELECT CStr(XXX) a ...
- Django工程中使用echarts怎么循环遍历显示数据
前言: 后面要开发测试管理平台,需要用到数据可视化,所以研究了一下 先看下最后的图吧,单击最上方的按钮可以控制柱状图显隐 views.py # -*- coding: utf-8 -*- from _ ...
- mvc中ViewBag返回数组如何循环显示数据
直接在for循环里面定义出viewbag @for (int i = 0; i < ViewBag.permission.Count; i++) { var permission = ViewB ...
- SAP ALV中同一列的不同行显示不同的小数位,并能够总计,小计
物料数量字段,根据物料类型的不同,来显示不同的小数位:要求有点苛刻: 首先,要能够总计和小计的话,这一列的字段类型必须是数值类型. 这样的话,就不能通过截取的方式改变不同行的小数位. 以下是两种思路: ...
- c#中如何不通过后台直接用js筛选gridview中的数据条件筛选查询?
js: //条件筛选 var showstate = true; function imagechange() { if (showstate) { $('#_toggle').hide(500, f ...
随机推荐
- 201521123104 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1. clone方法 1.1 Object ...
- 201521123073 《Java程序设计》第6周学习总结
1. 本章学习总结 2. 书面作业 1.clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 1.2 自己设计类时,一 ...
- 201521123056 《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.1 instanceof 测试一个对象是否是某个类的实例,即使左边是右边类的子类的实例对 ...
- 201521123035《Java程序设计》第三周学习总结
本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 书面作业 1.代码 ...
- Java课程设计——计算数学表达式的程序(201521123051 谢庆圆)
计算数学表达式的程序(201521123051 谢庆圆) 1.团队课程设计博客链接 团队课程设计博客链接 2.个人负责模块或任务说明 1.计算数字表达式中操作按钮的实现(右容器) 2.. 注册监听器以 ...
- tsst
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Sc ...
- AJAX应用【股票案例】
股票案例 我们要做的是股票的案例,它能够无刷新地更新股票的数据.当鼠标移动到具体的股票中,它会显示具体的信息. 我们首先来看一下要做出来的效果: 服务器端分析 首先,从效果图我们可以看见很多股票基本信 ...
- ops-web运维平台-create.jsp-mootools下拉框-复选框
create.jsp页面的,body部分 <body onload="Page.init('${pageError}','${pageMessage}',${isSubmit},tru ...
- java 利用反射构造泛型类
1.构造BaseDao泛型类 class BaseDao<T>{ private Class<T> entityClass; // 通过反射获取实际运行的精确类 public ...
- [js高手之路] es6系列教程 - 迭代器与生成器详解
什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的 ...