当前位置: 首页 > news >正文

高端 网站制作如何评价网站是否做的好处

高端 网站制作,如何评价网站是否做的好处,石家庄网站建设的公司,门户网站是转#xff1a;http://www.cnblogs.com/jaxu/archive/2011/08/04/2127365.html 我们见过Excel中的数据过滤功能#xff0c;可以通过点击表头上的下拉列表来实现数据的过滤#xff0c;这个功能很实用#xff0c;省去了我们需要在程序中单独设计数据的查询过滤模块#xff0c…转http://www.cnblogs.com/jaxu/archive/2011/08/04/2127365.html 我们见过Excel中的数据过滤功能可以通过点击表头上的下拉列表来实现数据的过滤这个功能很实用省去了我们需要在程序中单独设计数据的查询过滤模块功能直接依赖于数据绑定控件DataGridView。先来看看Excel中的数据过滤功能。  要想在DataGridView中实现类似于Excel的这种功能其实也并非难事。来看看msdn上的一篇文章上面有详细的介绍不过目前只有全英文的版本。http://msdn.microsoft.com/en-us/library/aa480727.aspx。里面提供的下载示例我这里也可以提供一份DataGridViewAutoFilter.zip   文章讲了很多有关如何实现数据过滤的知识如果你有耐心可以通读一遍应该能有不小的收获。其实这里面的原理就是我们需要自定义一种DataGridViewColumn它能支持用户通过点击表头上的下拉列表来实现DataGridView的数据过滤。自定义的DataGridViewColumn可以继承自现有的DataGridViewTextBoxColumn类型另外还需要自定义一个继承自DataGridViewColumnHeaderCell的类型它负责在DataGridView表头上呈现一个下拉列表并完成数据过滤的选择功能。下载上面的DataGridViewAutoFilter.zip压缩包将里面对应编程语言中的DataGridViewAutoFilterColumnHeaderCell.cs和DataGridAutoFilterTextBoxColumn.cs两个文件加入到你的工程中。然后需要重新定义DataGridView中的列如果你是手动指定DataGridView的列则需要在窗体的Designer.cs文件中手动修改与DataGridView列相关的代码或者你也可以通过程序动态指定DataGridView的列。将需要显示数据过滤的列的类型指定为DataGridViewAutoFilterTextBoxColumn类型。另外在绑定DataGridView数据源时必须使用BindingSource而不能使用如DataTable之类的普通数据源这一点非常重要在后面的代码展示中你将会看到为什么要这么做。   这里是具体的例子 public Form1() {InitializeComponent();// create sequence Item[] items new Item[] { new Book{Id 1, Price 13.50, Genre Comedy, Author Jim Bob}, new Book{Id 2, Price 8.50, Genre Drama, Author John Fox}, new Movie{Id 1, Price 22.99, Genre Comedy, Director Phil Funk},new Movie{Id 1, Price 13.40, Genre Action, Director Eddie Jones}};var query from i in itemsorderby i.Priceselect i;DataTable table query.CopyToDataTable();BindingSource source new BindingSource();source.DataSource table;foreach (DataColumn col in table.Columns){DataGridViewAutoFilterTextBoxColumn commonColumn new DataGridViewAutoFilterTextBoxColumn();commonColumn.DataPropertyName col.ColumnName;commonColumn.HeaderText col.ColumnName;commonColumn.Resizable DataGridViewTriState.True;this.dataGridView1.Columns.Add(commonColumn);} this.dataGridView1.DataSource source; } 代码中的第16行将LINQ的查询结果转换成了DataTable对象相关内容大家可以看我的另一篇文章“如何将LINQ查询到的结果由匿名类型var转换成DataTable对象”。另外代码中将DataGridView的所有列的类型指定成了DataGridViewAutoFilterTextBoxColumn使其能够支持自定义的数据过滤功能。好了现在运行你的应用程序将会看到表头上有下拉列表的小箭头点击它并选择下拉列表中的项便可实现DataGridView数据的排序。是不是很酷啊不过这里还有一个小问题那就是用户如何知道我当前选择了哪个列的数据过滤界面是不是应该给出相应的数据过滤信息呢我们可以在窗体的StatusStrip控件中添加一些Label标签用来显示这些信息   1. 显示用户当前选择了多少行。这个需要将DataGridView的SelectionMode属性设置成行选择模式即FullRowSelect。   2. 显示当前DataGridView一共有多少行。   3. 显示Filter的信息及应用数据过滤之后的总行数。   4. 添加一个按钮或链接用于移除当前的Filter。   来看看具体的实现代码及程序运行时的效果 private void dataGridView1_SelectionChanged(object sender, EventArgs e) {int iCount this.dataGridView1.SelectedRows.Count;this.toolStripStatus_SelectedRows.Text string.Format({0} row{1} selected, iCount.ToString(), iCount 1 ? s : ); }private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) {BindingSource data this.dataGridView1.DataSource as BindingSource;if (data null || data.DataSource null){return;}/* Show total records number*/// Retrieve the unfiltered row count by // temporarily unfiltering the data.data.RaiseListChangedEvents false;String oldFilter data.Filter;data.Filter null;int iTotalNum data.Count;this.toolStripStatus_Total.Text string.Format(Total of {0} record{1}., iTotalNum.ToString(), iTotalNum 1 ? s : );data.Filter oldFilter;data.RaiseListChangedEvents true;/* Show filter information.*/int iFilterNum data.Count;string filter data.Filter;if (String.IsNullOrEmpty(filter)){this.toolStripStatus_Separator2.Visible false;this.toolStripStatus_Filter.Visible false;this.toolStripStatus_ShowAll.Visible false;}else{this.toolStripStatus_Separator2.Visible true;this.toolStripStatus_Filter.Visible true;this.toolStripStatus_ShowAll.Visible true;this.toolStripStatus_Filter.Text string.Format({0} record{1} found., iFilterNum.ToString(), iFilterNum 1 ? s : );this.toolStripStatus_Filter.Text (Filter: filter );} }private void toolStripStatus_ShowAll_Click(object sender, EventArgs e) {DataGridViewAutoFilterColumnHeaderCell.RemoveFilter(this.dataGridView1); }   1. 当前用户选择的总行数。   2. DataGridView中一共有多少行。   3. Filter的信息及使用Filter之后的数据行数。   4. 用于移除Filter的链接。   代码中一共是三个事件dataGridView1_SelectionChanged事件用于在DataGridView行被选择时触发用来更新StatusStrip中当前用户选择的总行数dataGridView1_DataBindingComplete事件在DataGridView数据完成绑定时触发用来更新StatusStrip中Filter的信息及使用Filter之后的数据行数以及DataGridView的数据总行数注意其中将BindingSource的RaiseListChangedEvents设置为false以取得DataGridView数据源中的真实数据行数之后再将其设置为true以获取到Filter的相关信息toolStripStatus_ShowAll_Click事件为用户点击Show All链接时触发用于移除DataGridView中的Filter。 这里是完整的代码 http://pan.baidu.com/s/1eRZiw8M
http://www.pierceye.com/news/663361/

相关文章:

  • 常见的简单的网站制作建设网站的好公司
  • 邯郸网站制作建设wordpress+怎么迁移
  • 设计创意广告上海企业网站优化
  • 自己做网站需要购买服务器吗WordPress文章相册修改
  • 校园招聘哪个网站做的好学做川菜网站
  • 大足网站建设公司医院网站建设熊掌号
  • 做网站编辑是不是也要做推广做蛋白go分析网站
  • 免费品牌网站制作云南电商网站建设
  • 宿迁莱布拉网站建设常州做网站建设的公司
  • 广东网站建站系统哪家好常州网站搭建公司
  • 400网站建设推广软件工程师工资
  • 专门做正品的网站手机版深圳市门户网站建设怎么样
  • 做外贸比较好的网站有哪些北京短视频代运营
  • 建站公司学习筑梦网站建设
  • 手工艺品网站建设侧胡顺个人简历表格可填写
  • 电商网站竞价推广策略淘宝做问卷的网站
  • 门窗 东莞网站建设婚庆公司收费标准
  • 网站页面下沉的特效代码网络建设存在的问题
  • 给网站做维护是什么工作网页怎么赚钱
  • 三丰云做游戏网站win主机安装wordpress
  • 网站建设黄荣vuejs做视频网站设计
  • 手机怎样下载安装建设银行网站企业通过网络推广成功的案例
  • 门户网站开发工具软件哪个公司的网络最好用
  • 河南省住房和城乡建设厅查询网站首页舆情网站推荐
  • 网页设计是网站建设与管理的内容吗公司网络营销的方案思路
  • 商业授权网站标题优化技巧
  • 班级网站做哪些方面阿里云市场网站建设
  • 2345网站登录电子工程师有前途吗
  • 网站建设企业邮箱制作网站山东平台网站建设制作
  • 仿新浪微博网站代码国家高新技术企业公示