精华内容
下载资源
问答
  • :实验目的 按商户号分组,对交易笔数,交易金额,手续费...在‘选择个表或区域’处会自动选择所有数据区域:   新工作表是这样形式的: 拖拽成功后的样子:   在右侧选中要’求和’的字段,会自动在左侧进

    一:实验目的

    按商户号分组,对交易笔数,交易金额,手续费进行分类求和。最后按交易笔数进行降序排序。 

    部分原始数据如下:



    二:实验步骤


    2.1:用透视表实现分类汇总 

    插入->数据透视表,

    在‘选择一个表或区域’处会自动选择所有数据区域:

     

    新工作表是这样形式的:


    拖拽成功后的样子:

     

    在右侧选中要’求和’的字段,会自动在左侧进行求和:

     

    假如不是要求和,而是要看最大值等,可以在这里进行设置:



     

    2.2:排序

    将透视表里面的数据复制到一个新的sheet页里(无格式粘贴)进行排序:





    排序成功。

    有的版本office排序是通过这种形式:




    本篇文章参考:http://wenku.baidu.com/link?url=TfH7xKOCWEzaveg8gzWBe4j26mBSZYIZX4VOvUpmyRfM8BoJ2bFJbv14xqFYP7phyhS2vlMbls0p07fNtAj3QKhJnizaQFvyl3OMhz9Nana

    http://jingyan.baidu.com/article/fb48e8be5438086e632e1455.html

     

    展开全文
  • 最近要研究数据库的原理,看到索引的数据结构是二叉树,只是书中没有具体给出怎样根据物理地址来构建出索引的二叉树,百度也没有看到有,于是乎,只能自己想了,好在最后想出,我初步验证了一下是正确的,下面是...

    最近要研究数据库的原理,看到索引的一种数据结构是二叉树,只是书中没有具体给出怎样根据物理地址来构建出索引的二叉树,百度也没有看到有,于是乎,只能自己想了,好在最后想出,我初步验证了一下是正确的,下面是步骤:


    通过上面的那幅图,我们逐步来分析,

    ①将这一列的所有值先进行排序,结果是5,22,23,34,77,89,91

    ②根据使用二叉树的索引的规则,最小的节点一定在二叉树的最左下角的那个节点,最大的节点一定在二叉树的最右下角的那个节点。所以5这个节点一定在这颗二叉树的左下角

    ③确定了最小的节点后,再查找第二小的节点,这个节点就是最小的节点的父节点,然后查找第三小的节点,这个节点应当是最小的节点的兄弟节点。即在查找22这个节点,这个节点一定是5这个节点的父节点,在查找23这个节点,这个节点一定是5这个节点的兄弟节点。

    ④然后只关注第③步中的那个中间节点即22这个节点。这个节点再作为第③步中最小的节点进行第③步。但是此时进行第③步时,最小节点的父节点应该为在排序顺序中序号比它大两个的那个节点。比如,22这个节点的父节点不是23,而是34.

    ⑤同样,确定了最大的节点后,再查找第二大的节点,这个节点就是最大的节点的父节点,然后查找第三大的节点,这个节点是最大的节点的兄弟节点。即最大的节点是91,然后查找89,再查找77这个节点。其中89这个节点是91这个节点的父节点,而77这个节点是91这个节点的兄弟节点。

    ⑥同第四步类似。这里不再详述。

    ⑦当第③步中的父节点和第⑤步的父节点相同时并且他们没有共同的比他们更小的值时,那么这个节点就是根节点。比如22的父节点时34,89的父节点时34,所以这颗二叉树的根节点就是34.

    ⑧其中,每个节点都分别包含索引键值和一个指向物理地址的指针。

    展开全文
  • 12.2.3 怎样使用种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多...
  • 12.2.3 怎样使用种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多...
  • 12.2.3 怎样使用种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多...
  • 12.2.3 怎样使用种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多...
  •  索引原理:对值创建排序存储,数据结构={值、行地址}。在有序数据列表中就可以利用二分查找快速找到要查找的行的地址,再根据地址直接取行数据。 问题2:索引的排序,是怎么排的?  数值  时间  ...

    个人博客请访问 http://www.x0100.top

    一、为什么需要搜索引擎

    问题1:数据库索引的原理是怎样的?

      索引原理:对列值创建排序存储,数据结构={列值、行地址}。在有序数据列表中就可以利用二分查找快速找到要查找的行的地址,再根据地址直接取行数据。

    问题2:索引的排序,是怎么排的?

      数值列

      时间列

      文本列

    问题3:在新闻标题列上建索引,当我们查询 标题 = ‘钓鱼岛’,数据库会怎么去查? 而当我们查询 标题 LIKE ‘%钓鱼岛%’ ,数据库该如何去查?

      Like 时索引失效,全表扫描,数据量大时是噩梦。

    问题4:在数据库中如何判断一个列是否可以建索引?

    基本原则:

    表经常被访问,且数据量很大,而每次查询的数据只占很小很小一部分

    列的数据值分布范围广泛

    列中包含大量空值

    列被经常用在查询条件中(不能是包含在表达式中)

    注意:文本列需特殊考虑:经常是用作模糊查询,则不适合建索引。精确查询则可。

    问题5:如果要对查询出来的结果进行相关度排名,数据库能否做到?

    如:要查询 苍老师、tony、火锅有关的新闻:

    含有三个关键字(相关度最高)的新闻排前面

    含两个关键字(相关度次之),排次之

    含一个关键字 的,排次次之。

    如果要对搜索的新闻字段设置不同的权重,比如新闻标题中包含这三个关键字的新闻的相关性就远高于新闻内容中包含这三个字。数据库能否做到?

      答案:做不到,这个时候就需要搜索引擎了

    问题6:常见的数据结构有哪些?

    结构化数据: 用表、字段表示的数据

    半结构化数据:   xml 、html

    非结构化数据: 文本、文档、图片、音频、视频等

    经过前面的问题的讨论,得出为什么需要搜索引擎的结论:

      数据库适合结构化数据的精确查询,而不适合半结构化、非结构化数据的模糊查询及灵活搜索(特别是数据量大时),无法提供想要的实时性。

    二、怎样建立反向索引

    问题1:如何做才能快速查询到与苍老师有关的新闻?

    分析:我们查询时,输入的是苍老师,想要得到标题或内容中包含“苍老师”的新闻列表。

    如果标题、内容列上都有一个这样的索引,里面能快速找到与苍老师关键字对应的文章id,再根据文章id就可以快速找到文章了。

    标题列索引:

    内容列索引:

    词到文章id的索引,这就是:反向索引(Inverted index)

    问题2:问题1的标题列索引和内容列索引两个索引可以合并到一起,这样有什么好处?

     

    合并得好处是:可以减少访问数据库的次数

    问题3:反向索引的记录数会不会很大?如果是英文的,最大是多少?如果是中文的,最大可能是多少?

      英语单词的大致数量是10万个 汉字的总数已经超过了8万,而常用的只有3500字

      《现代汉语规范词典》比《现代汉语词典》收录的字和词数量更多。前者是13000多字,72000多词,后者是11000多字,69000多词

       结论:量不会很大,30万以内;通过这个索引找文章会很快

    问题4:如何建立问题2中的这样一个反向索引?

    数据示例:

    新闻id:1

    新闻标题:Tony 与苍老师一起吃火锅

    新闻内容:2018年4月1日,Tony 在四川成都出席某活动时,碰巧主办方也邀请了苍老师来提高人气,在主办方的邀请下和苍老师一起吃了个火锅,很爽!

    如果是英文文章,好不好分?

    It’s one thing to find the 10 best documents to match your query

    英文好分(有空格),中文则不好分。 但一定得要分,否则无法建立反向索引。

    就必须写一套专门的程序来做这个事情:分词器

    中文分词器原理:有个词的字典,对语句前后字进行组合,与字典匹配,歧义分析

     问题5: java开源中文分词器有很多,如何选择?

      准确率、分词效率、中英文混合分词支持

    常用中文分词器:

    IKAnalyzer、mmseg4j

    问题6: 你、我、他、的、地、了、标点符号…..这些需要为其创建索引吗?

    这些词称为:停用词。分词器支持指定/添加停用词,不需要为其创建索引

    问题7: 当出现了新词了,该怎么办?

      撩妹 老司机、软妹子、直男、腿玩年、苍老师

      分词器应支持为其词典添加新词。

    总结:

    根据分词结果,我们创建反向索引,如下所示:

     

     

     

    三、有了反向索引了,如何进行搜索?

    如想搜索与 “tony OR 苍老师” 相关的新闻,步骤是怎样的?

    步骤1: 对搜索输入进行分词

    tony 、苍老师

    步骤2: 在反向索引中找出包含tony、苍老师的文章列表

     

    步骤3: 合并两个列表,排序输出

      {1,12,8,5}

    四、如何建立一个相关性评估模型?

    利用出现次数来建立模型

    规则1: 统计出现次数,根据次数从高到低排

    {{1,5},{5,3},{12,1},{8,1}}:文章1出现5次,文章5出现3次,文章12出现1次,文章8出现1次

    问题1:标题中出现苍老师,与新闻的内容中出现苍老师,哪个是专门写苍老师的相关度高些?怎么做

     规则2: 加入权重,标题权重10,内容权重1,计算权重得分,按高-低排序

      {{1,23},{12,10},{5,3},{8,1}}

    总结:利用出现次数来建立模型这个相关性模型很简单。有时排序会不是很准确。

    复杂的相关性计算模型有:

    tf-idf 词频-逆文档率模型

    向量空间模型

    贝叶斯概率模型,如: BM25

    搜索引擎中会提供一种、或多种实现供选择使用,也会提供扩展。

    电商网站中的搜索相关性计算会考虑更多,更复杂。

    五、反向索引更新:数据更新时,索引是不是必须得更新?好更新吗?

    更新情况分析:

    问1:新增时,需要怎么更新?

    问2:删除时,需要怎么更新?

    问3:修改时,需要怎么更新?

    六、反向索引是存储在内存中,还是磁盘中合适?

      大的放磁盘,小的放内存,同时需要做持久化

    七、搜索引擎需要支持精确搜索吗?需要支持像数据库一样的多条件AND  OR 组合搜索吗?

      如 类别 IN () 数值 > = < 时间

      必须要,否则搜索引擎就没人用了

    八、总结

    1、搜索引擎是什么?

      一套可对大量结构化、半结构化数据、非结构化文本类数据进行实时搜索的专门软件

      最早应用于信息检索领域,经谷歌、百度等公司推出网页搜索而为大众广知。后又被各大电商网站采用来做网站的商品搜索。现广泛应用于各行业、互联网应用。是大型系统、网站架构师必备技能。

    2、搜索引擎是用来解决什么问题的?

      专门解决大量结构化、半结构化数据、非结构化文本类数据的实时检索问题。 这种实时搜索数据库做不了。

    3、搜索引擎适合什么场景使用?

      核心:大量结构化、半结构化、非结构化文本类数据的实时搜索

      信息检索(如电子图书馆、电子档案馆)

      网页搜索

      内容提供网站的内容搜索(如 新闻、论坛、博客网站)

      电子商务网站的商品搜索

      如果你负责的系统数据量大,通过数据库检索慢,可以考虑用搜索引擎来专门负责检索。

    4、搜索引擎由哪些核心部件构成?

      数据源、分词器、反向索引(倒排索引)、相关性计算模型

    5、搜索引擎的工作原理是怎样的?

      1、从数据源加载数据,分词、建立反向索引

      2、搜索时,对搜索输入进行分词,查找反向索引

      3、计算相关性,排序,输出

    6、要实现一个搜索引擎,需要实现哪些?

      1、分词器

      2、反向索引,索引存储

      3、相关性计算模型

    7、要去使用一个搜索引擎,需要搞清楚它的哪些方面?

      1、分词器

      2、反向索引建立、存储、更新

      3、相关性计算模型

    8、java领域应用广泛的开源搜索引擎组件、系统

    Lucene:Apache顶级开源项目,Lucene-core是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的框架,提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

     Nutch:Apache顶级开源项目,包含网络爬虫和搜索引擎(基于lucene)的系统(同百度、google)。Hadoop因它而生。

     Solr:Lucene下的子项目,基于Lucene构建的独立的企业级开源搜索平台,一个服务。它提供了基于xml/JSON/http的api供外界访问,还有web管理界面。

    Elasticsearch:基于Lucene的企业级分布式搜索平台,它对外提供restful-web接口,让程序员可以轻松、方便使用搜索平台,而不需要了解Lucene。

    问题:如何选择搜索引擎组件或系统?

     看成熟度,使用企业量。

    更多精彩内容扫描下方二维码进入网站。。。。。

    关注微信公众号。。。。。

     

    展开全文
  • 业务需求是从KeywordIndex表中查找到同时符合多个KeywordID的记录(交集),然后根据这个交集从Original表中取出相应记录、排序后取出前X条 基本的语句如下SELECT * FROM ( SELECT OuterID AS ResultID, ROW_...
  • [size=small][color=red]我现在想实现这样个功能,在本地传递参数到yahoo网站,该网站根据我的参数返回我需要的数据,返回的是xml格式文件,类似于动态查询天气服务的功能。现在我能够实现对本地的xml文件进行解析...
  • 列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表中 统计最大的连续次数3个“不重复”个数统计在一列有重复的姓名中,如何统计出具体有几人 计数的...
  • 3)、修改学生表的结构,删除一列信息,家庭住址 我的答案: alter table student drop column address; 4)、向学生表添加如下信息: 学号 姓名 年龄 性别 联系电话 学历 1 A 22 男 123456 小学 2 B ...
  • sql经典语句部分

    2011-07-31 11:16:50
    3),例如:在个外部表中导入数据,由于某些原因第次只导入了部分,但很难判断具体位置,这样只有在下次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加个自增 add...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表中 统计最大的连续次数3个“不重复”个数统计在一列有重复的姓名中,如何统计出具体有几人 计数的...
  • JQuery DataTables学习

    2017-07-30 14:52:00
    1、Datatables简单介绍...主要特点:自己主动分页处理即时表格数据过滤数据排序以及数据类型自己主动检測自己主动处理宽度可通过CSS定制样式支持隐藏易用可扩展性和灵活性国际化动态创建表格免费的2、怎样使用:...

    1、Datatables简单介绍

              DataTables是一个jQuery的表格插件。这是一个高度灵活的工具,根据的基础逐步增强,这将添加先进的互动控制。支持不论什么HTML表格。

    主要特点:

    • 自己主动分页处理
    • 即时表格数据过滤
    • 数据排序以及数据类型自己主动检測
    • 自己主动处理列宽度
    • 可通过CSS定制样式
    • 支持隐藏列
    • 易用
    • 可扩展性和灵活性
    • 国际化
    • 动态创建表格
    • 免费的

    2、怎样使用:

                在做后台的时候并没有美工和前端project师来配合你做页面,为了显示数据并有一定的美感,我们能够使用jQuery的DataTables插件来帮助我们完毕任务

                1、DataTables的默认配置

    [javascript] view plaincopyprint?
    1.  $(document).ready(function() {  
    2. $('#example').dataTable();  
    3. } );  

                2、DataTables的一些基础属性配置

    [javascript] view plaincopyprint?

    1.                    "bPaginate"true//翻页功能  
    2. "bLengthChange"true//改变每页显示数据数量  
    3. "bFilter"true//过滤功能  
    4. "bSort"false//排序功能  
    5. "bInfo"true,//页脚信息  
    6. "bAutoWidth"true//自己主动宽度  

                    3、数据排序

    [javascript] view plaincopyprint?
    1. $(document).ready(function() {  
    2. $('#example').dataTable( {  
    3. "aaSorting": [  
    4. [ 4, "desc" ]  
    5. ]  
    6. } );  
    7. } );  

    从第0列開始,以第4列倒序排列

                     4、隐藏某些列

    [javascript] view plaincopyprint?
    1.     $(document).ready(function() {  
    2. $('#example').dataTable( {  
    3. "aoColumnDefs": [  
    4. "bSearchable"false"bVisible"false"aTargets": [ 2 ] },  
    5. "bVisible"false"aTargets": [ 3 ] }  
    6. ] } );  
    7. } );  

                      5、国际化

    [javascript] view plaincopyprint?
    1. $(document).ready(function() {  
    2. $('#example').dataTable( {  
    3. "oLanguage": {  
    4. "sLengthMenu""每页显示 _MENU_ 条记录",  
    5. "sZeroRecords""抱歉, 没有找到",  
    6. "sInfo""从 _START_ 到 _END_ /共 _TOTAL_ 条数据",  
    7. "sInfoEmpty""没有数据",  
    8. "sInfoFiltered""(从 _MAX_ 条数据中检索)",  
    9. "oPaginate": {  
    10. "sFirst""首页",  
    11. "sPrevious""前一页",  
    12. "sNext""后一页",  
    13. "sLast""尾页"  
    14. },  
    15. "sZeroRecords""没有检索到数据",  
    16. "sProcessing""<img src='./loading.gif' />"  
    17. }  
    18. } );  
    19. } );  

    6、排序功能:

    [javascript] view plaincopyprint?
    1. $(document).ready(function() {  
    2. $('#example').dataTable( {  
    3. "aoColumns": [  
    4. null,  
    5. "asSorting": [ "asc" ] },  
    6. "asSorting": [ "desc""asc""asc" ] },  
    7. "asSorting": [ ] },  
    8. "asSorting": [ ] }  
    9. ]  
    10. } );  
    11. } );  


    7、数据获取支持4种:例如以下

    1. •DOM   文档数据  
    2. •Javascript array  js数组  
    3. •Ajax source     Ajax请求数据  
    4. •Server side processing  服务器端数据  

    3、參数解说:


    下面是在进行dataTable绑定处理时候能够附加的參数: 

    属性名称取值范围解释
    bAutoWidthtrue or false, default true是否自己主动计算表格各列宽度
    bDeferRendertrue or false, default false用于渲染的一个參数
    bFiltertrue or false, default true开关,是否启用client过滤功能
    bInfotrue or false, default true开关,是否显示表格的一些信息
    bJQueryUItrue or false, default false是否使用jquery ui themeroller的风格
    bLengthChangetrue or false, default true开关,是否显示一个每页长度的选择条(须要分页器支持)
    bPaginatetrue or false, default true开关。是否显示(使用)分页器
    bProcessingtrue or false, defualt false开关,以指定当正在处理数据的时候。是否显示“正在处理”这个提示信息
    bScrollInfinitetrue or false, default false开关,以指定是否无限滚动(与sScrollY配合使用)。在大数据量的时候非常实用。当这个标志为true的时候。分页器就默认关闭
    bSorttrue or false, default true开关,是否让各列具有按列排序功能
    bSortClassestrue or false, default true开关,指定当当前列在排序时,是否添加classes 'sorting_1', 'sorting_2' and 'sorting_3',打开后,在处理大数据时。性能有所损失
    bStateSavetrue or false, default false开关,是否打开client状态记录功能。

    这个数据是记录在cookies中的。打开了这个记录后,即使刷新一次页面。或又一次打开浏览器,之前的状态都是保存下来的

    sScrollX'disabled' or  '100%' 相似的字符串是否开启水平滚动,以及指定滚动区域大小
    sScrollY'disabled' or '200px' 相似的字符串是否开启垂直滚动。以及指定滚动区域大小
    ------
    选项  
    aaSortingarray array[int,string], 如[], [[0,'asc'], [0,'desc']]指定按多列数据排序的根据
    aaSortingFixed同上同上。

    唯一不同点是不能被用户的自己定义配置冲突

    aLengthMenudefault [10, 25, 50, 100]。能够为一维数组。也可为二维数组。比方:[[10, 25, 50, -1], [10, 25, 50, "All"]]这个为选择每页的条目数,当使用一个二维数组时,二维层面仅仅能有两个元素。第一个为显示每页条目数的选项,第二个是关于这些选项的解释
    aoSearchColsdefault null, 相似:[null, {"sSearch": "My filter"}, null,{"sSearch": "^[0-9]", "bEscapeRegex": false}]给每一个列单独定义其初始化搜索列表特性(这一块还没搞懂)
    asStripClassesdefault ['odd', 'even'], 比方['strip1', 'strip2', 'strip3']指定要被应用到各行的class风格,会自己主动循环
    bDestroytrue or false, default false用于当要在同一个元素上运行新的dataTable绑定时。将之前的那个数据对象清除掉。换以新的对象设置
    bRetrievetrue or false, default false用于指明当运行dataTable绑定时,是否返回DataTable对象
    bScrollCollapsetrue or false, default false指定适当的时候缩起滚动视图
    bSortCellsToptrue or false, default false(未知的东东)
    iCookieDuration整数,默认7200,单位为秒指定用于存储client信息到cookie中的时间长度,超过这个时间后,自己主动过期
    iDeferLoading整数,默觉得null延迟载入,它的參数为要载入条目的数目,通常与bServerSide,sAjaxSource等配合使用
    iDisplayLength整数,默觉得10用于指定一屏显示的条数,需开启分页器
    iDisplayStart整数,默觉得0用于指定从哪一条数据開始显示到表格中去
    iScrollLoadGap整数,默觉得100用于指定当DataTable设置为滚动时,最多能够一屏显示多少条数据
    oSearch默认{ "sSearch": "", "bRegex": false, "bSmart": true }又是初始时指定搜索參数相关的,有点复杂,没搞懂眼下
    sAjaxDataProp字符串,default 'aaData'指定当从服务端获取表格数据时,数据项使用的名字
    sAjaxSourceURL字符串,default null指定要从哪个URL获取数据
    sCookiePrefix字符串,default 'SpryMedia_DataTables_'当打开状态存储特性后,用于指定存储在cookies中的字符串的前缀名字
    sDomdefault lfrtip (when bJQueryUI is false) or <"H"lfr>t<"F"ip> (when bJQueryUI is true)这是用于定义DataTable布局的一个强大的属性。另开专门文档来补充说明吧
    sPaginationType'full_numbers' or 'two_button', default 'two_button'用于指定分页器风格
    sScrollXInnerstring default 'disabled'又是水平滚动相关的,没搞懂啥意思


    DataTable支持例如以下回调函数 
    回调函数名称參数返回值默认功能
    fnCookieCallback1.string: Name of the cookie defined by DataTables 2.object: Data to be stored in the cookie 3.string: Cookie expires string 4.string: Path of the cookie to setstring: cookie formatted string (which should be encoded by using encodeURIComponent())null当每次cookies改变时,会触发这个函数调用
    fnDrawCallback在每次table被draw完后调用。至于做什么就看着办吧
    fnFooterCallback1.node : "TR" element for the footer 2.array array strings : Full table data (as derived from the original HTML) 3.int : Index for the current display starting point in the display array< 4.int : Index for the current display ending point in the display array 5.array int : Index array to translate the visual position to the full data array用于在每次重画的时候改动表格的脚部
    fnFormatNumber1.int : number to be formattedString : formatted string for DataTables to show the number有默认的用于在大数字上,自己主动加入一些逗号。分隔开
    fnHeaderCallback1.node : "TR" element for the header 2.array array strings : Full table data (as derived from the original HTML) 3.int : Index for the current display starting point in the display array 4.int : Index for the current display ending point in the display array 5.array int : Index array to translate the visual position to the full data array用于在每次draw发生时,改动table的header
    fnInfoCallback1.object: DataTables settings object 2.int: Starting position in data for the draw 3.int: End position in data for the draw 4.int: Total number of rows in the table (regardless of filtering) 5.int: Total number of rows in the data set, after filtering 6.string: The string that DataTables has formatted using it's own rulesstring: The string to be displayed in the information element.用于传达table信息
    fnInitComplete1.object:oSettings - DataTables settings object表格初始化完毕后调用
    fnPreDrawCallback1.object:oSettings - DataTables settings objectBoolean用于在開始绘制之前调用,返回false的话,会阻止draw事件发生;返回其他值,draw能够顺利运行
    fnRowCallback1.node : "TR" element for the current row 2.array strings : Raw data array for this row (as derived from the original HTML) 3.int : The display index for the current table draw 4.int : The index of the data in the full list of rows (after filtering)node : "TR" element for the current row当创建了行,但还未绘制到屏幕上的时候调用。通经常使用于改变行的class风格
    fnServerData1.string: HTTP source to obtain the data from (i.e. sAjaxSource) 2.array objects: A key/value pair object containing the data to send to the server 3.function: Function to be called on completion of the data get process that will draw the data on the page.void$.getJSON用于替换默认发到服务端的请求操作
    fnStateLoadCallback1.object:oSettings - DataTables settings object 2.object:oData - Object containing information retrieved from the state saving cookie which should be restored. For the exact properties please refer to the DataTables code.Boolean - false if the state should not be loaded, true otherwise在cookies中的数据被载入前运行,能够方便地改动这些数据
    fnStateSaveCallback1.object:oSettings - DataTables settings object 2.String:sValue - a JSON string (without the final closing brace) which should be stored in the state saving cookie.String - the full string that should be used to save the state在状态数据被存储到cookies前运行。能够方便地做一些预操作

    4、实例解说:


    1. 需求:例如以下图所看到的,对datatables的内容进行加入,编辑,删除的操作。

    2. 分析:加入功能---单击addbutton。弹出对话框。加入新的内容。

                       编辑功能---单击datatables能够选中一行。此行改变颜色,即是已经选中。单击editbutton,弹出dialog,此dialog中的内容是我们选中行的内容。假设没有选中行,点击editbutton,则不会弹出dialog。当双击datatables中的某一行时,也弹出dialog。而且双击的行改变颜色,dialog中的内容是我们双击行的内容。

                       删除功能---单击datatables选中一行。单击deletebutton,弹出警告框。提示要不要删除所选内容。

    当没有选中不论什么内容时。单击deletebutton。不会弹出警告框,也不会删除内容。

    3.  编码:

    Attributes//名称
               
      <table id="gridtable" class="gridtable">//声明jquery datatables
          <thead>
              <tr>
                  <th>Name
                  </th>
                  <th>Value
                  </th>
                  <th>DisplayOrder
                 </th>
             </tr>
        </thead>
         <tbody>
            .....//datatables内容。此处省略
         </tbody>
     </table>
     <input type="button" id="add" value="Add" />//加入button
     <input type="button" id="edit" value="Edit" />//编辑button
     <input type="button" id="delete" value="Delete" />//删除button
     
     
     <div id="e_Attributes">//声明dialog,异步更新
         @using (Ajax.BeginForm("Update", "Product", new AjaxOptions
     {
         UpdateTargetId = "d_Attributes",
         OnSuccess = "dialogClose",
         HttpMethod = "Post",
     }))
         {
             <table>
                 <tbody>
                     <tr>                          
                         <td>Name</td>
                         <td>
                           <input id="name" name="Name" type="text" style="width:250px" class="required"/>*</td>
                     </tr>
                     <tr>
                         <td>Value</td>
                         <td>
                             <input id="value" name="Value" type="text" style="width:250px" class="required"/>*</td>
                     </tr>
                    <tr>   
                      <td>DisplayOrder</td>
                         <td>
                             <input id="displayOrder" name="DisplayOrder" type="text" style="width:128px" class="required"/>*</td>
                     </tr>
                     <tr>
                         <td>
                             <input id="submit" type="submit" name="submit" value="Submit" />
                             <input id="hiddenValue" type="hidden" name="hiddenValue" />
                         </td>
                     </tr>
                 </tbody>
             </table>
         }
     </div>

    上面代码说明:这段代码主要分了两个部分,第一部分是jquery datatables的声明,<table id="gridtable" class="gridtable">;第二部分是dialog的声明。以及操作所须要的action,此部分的操作选择ajax无刷新页面技术。

    所需js的代码:

     <script type="text/javascript">
           function dialogClose() {
               $("#e_Attributes").dialog("close");
           }
       
           $("#e_Attributes").dialog({
               modal: true,
               autoOpen: false,
               show: {
                  effect: "blind",
                 duration: 1000
              },
              hide: {
                  effect: "explode",
                  duration: 1000
             },
             width: 400
          });
      
          var editor;
      
          $(function () {
             //声明datatable
              $("#gridtable").dataTable().fnDestroy();
              editor = $('#gridtable').dataTable({
                 "bInfo":false,
                 "bServerSide": false,
                 'bPaginate': false,                      //是否分页。
                  "bProcessing": false,                    //当datatable获取数据时候是否显示正在处理提示信息。
                  'bFilter': false,                       //是否使用内置的过滤功能。

    'bLengthChange': false, //是否同意用户自己定义每页显示条数。

    'sPaginationType': 'full_numbers', //分页样式 }); //单击,赋值。改样式 $("#gridtable tbody tr").click(function (e) { if ($(this).hasClass('row_selected')) { $(this).removeClass('row_selected'); putNullValue() } else { editor.$('tr.row_selected').removeClass('row_selected'); $(this).addClass('row_selected'); var aData = editor.fnGetData(this); if (null != aData) { putValue(aData); } } }); //双击 $("#gridtable tbody tr").dblclick(function () { if ($(this).hasClass('row_selected')) { //$(this).removeClass('row_selected'); } else { editor.$('tr.row_selected').removeClass('row_selected'); $(this).addClass('row_selected'); } var aData = editor.fnGetData(this); if (null != aData) { putValue(aData); } $("#hiddenValue").val("edit"); $("#e_Attributes").dialog("open"); }); //加入 $("#add").click(function () { editor.$('tr.row_selected').removeClass('row_selected'); putNullValue(); $("#hiddenValue").val("add"); $("#e_Attributes").dialog("open"); }); //编辑 $("#edit").click(function () { var productAttributeID = $("#productAttributeID").val(); if (productAttributeID != "" && productAttributeID != null) { $("#hiddenValue").val("edit"); $("#e_Attributes").dialog("open"); } }); //删除 $("#delete").click(function () { var productAttributeID = $("#productAttributeID").val(); var productID = $("#productID").val(); if (productAttributeID != null && productAttributeID != "") { if (confirm("Delete?

    ")) { $.ajax({ type: "GET", url: "@Url.Action("DeleteAttribute", "Product")", data: { ProductID: productID, ProductAttributeID: productAttributeID },//參数名要和Action 中的參数名同样 dataType: "html", cache: false, success: function (result) { $("#d_Attributes").html(result); $("#productAttributeID").val(null); } }); } } }); //赋空值,并去除input-validation-error样式(此样式无论有无,均可去除。所以不用推断了) function putNullValue() { 。

    。。。

    。。//此处省略 } //赋值 function putValue(aData) { 。。

    。。

    。//此处省略 } }); $.ajaxSetup({ cache: false }); </script>



    上面代码说明:这段代码分别为dialog 的声明,datatables的声明以add,edit,delete的操作。

                加入功能效果图

     

                 编辑功能效果图:

                   

           删除效果图:

        

    到此,功能已经所有实现。所需的代码也已经贴出。

    4、分页实现


    引入CSS文件和JS文件

    --------------------------------------------------------------------------

    <style type="text/css" title="currentStyle">
            @import "DataTables-1.8.1/media/css/demo_page.css";
            @import "DataTables-1.8.1/media/css/demo_table.css";
            @import "DataTables-1.8.1/media/css/demo_table_jui.css";
    </style>
    <script type="text/javascript" language="javascript" src="DataTables-1.8.1/media/js/jquery.js"></script>
    <script type="text/javascript" language="javascript" src="DataTables-1.8.1/media/js/jquery.dataTables.js"></script>
     
     --------------------------------------------------------------------------
     
    -----------最简单的方式:
     $(document).ready(function() {
     $("#example").dataTable();
    });
     
    ----------也能够自己定义各属性:
    <script type="text/javascript" language="javascript">
            $(document).ready(function() {
                $("#example").dataTable({
    //                "bPaginate": true, //开关。是否显示分页器
    //                "bInfo": true, //开关,是否显示表格的一些信息
    //                "bFilter": true, //开关。是否启用client过滤器
    //                "sDom": "<>lfrtip<>",
    //                "bAutoWith": false,
    //                "bDeferRender": false,
    //                "bJQueryUI": false, //开关,是否启用JQueryUI风格
    //                "bLengthChange": true, //开关。是否显示每页大小的下拉框
    //                "bProcessing": true,
    //                "bScrollInfinite": false,
    //                "sScrollY": "800px", //是否开启垂直滚动,以及指定滚动区域大小,可设值:'disabled','2000px'
    //                "bSort": true, //开关,是否启用各列具有按列排序的功能
    //                "bSortClasses": true,
    //                "bStateSave": false, //开关。是否打开client状态记录功能。这个数据是记录在cookies中的,打开了这个记录后,即使刷新一次页面,或又一次打开浏览器,之前的状态都是保存下来的- ------当值为true时aoColumnDefs不能隐藏列
    //                "sScrollX": "50%", //是否开启水平滚动,以及指定滚动区域大小,可设值:'disabled','2000%'
    //                "aaSorting": [[0, "asc"]],
    //                "aoColumnDefs": [{ "bVisible": false, "aTargets": [0]}]//隐藏列
    //                "sDom": '<"H"if>t<"F"if>',
                    "bAutoWidth": false, //自适应宽度
                    "aaSorting": [[1, "asc"]],
                    "sPaginationType": "full_numbers",
                    "oLanguage": {
                        "sProcessing": "正在载入中......",
                        "sLengthMenu": "每页显示 _MENU_ 条记录",
                        "sZeroRecords": "对不起,查询不到相关数据!

    ", "sEmptyTable": "表中无数据存在!", "sInfo": "当前显示 _START_ 到 _END_ 条。共 _TOTAL_ 条记录", "sInfoFiltered": "数据表中共为 _MAX_ 条记录", "sSearch": "搜索", "oPaginate": { "sFirst": "首页", "sPrevious": "上一页", "sNext": "下一页", "sLast": "末页" } } //多语言配置 }); }); </script>



    ----------------页面:

     

    对于 dataTables 来说,表格必须通过 thead 和 tbody 进行说明,例如以下所看到的,


    <table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
            <thead>
                <tr>
                    <th>
                        Rendering engine
                    </th>
                    <th>
                        Browser
                    </th>
                    <th>
                        Platform(s)
                    </th>
                    <th>
                        Engine version
                    </th>
                    <th>
                        CSS grade
                    </th>
                </tr>
            </thead>
            <tbody>
                <tr class="odd gradeX">
                    <td>
                        Trident
                    </td>
                    <td>
                        Internet Explorer 4.0
                    </td>
                    <td>
                        Win 95+
                    </td>
                    <td class="center">
                        4
                    </td>
                    <td class="center">
                        X
                    </td>
                </tr>
    

     
     

    假设没有 thead 将会报错。

    • bPaginate: 是否分页,默觉得 true,分页
    • iDisplayLength : 每页的行数,每页默认数量:10
    • sPaginationType: 分页样式。支持两种内置方式,two_button 和 full_numbers, 默认使用 two_button。
    • bLengthChange : 是否同意用户通过一个下拉列表来选择分页后每页的行数。行数为 10,25,50,100。

      这个设置须要 bPaginate 支持。

      默觉得 true。

    • bFilter: 启用或禁止数据过滤,默觉得 true。 注意,假设使用过滤功能,可是希望关闭默认的过滤输入框。应使用 sDom
    • bInfo: 同意或者禁止表信息的显示。默觉得 true,显示信息。


    最为简单的使用方式,就是零配置的方式。

    /*
     * Example init
     */
    $(document).ready(function(){
        $('#example').dataTable();

    });


    转载于:https://www.cnblogs.com/gavanwanggw/p/7259152.html

    展开全文
  • 2.4 数据类型 PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。 数值 数值类型可以是整数或是...
  • SQL语法大全

    2014-03-30 11:00:11
    Source参数可以是个Command对象名称、段SQL命令、个指定的数据表名称或是个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。 ActiveConnection Recordset对象可以通过...
  • 聊聊什么是索引

    2020-11-02 09:42:06
     索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。简单来说索引的出现就是为了提高数据的查询效率,就像书的目录一样。在书籍中,用户不必翻阅完整个书就能根据目录...
  • 还在为日常数据处理分析,从查询结果中,求出可自定任意选择行及数字型字段数据求合,而手工一行行、一列列累加求和吗? 还在为某种数据不同类别所占总数比例及各多少?而手工累加一一计算吗?本系统使用了ABC方法...
  • 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 建立索引是加快查询速度的有效手段,数据库索引类似于图书后面的索引,能快速定位到需要查询的内容,用户可以根据...
  • 实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7 ...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7...
  • 3.18 需要根据条件把个复杂的表达式赋给两个变量中的个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 41  3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受...
  • 实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7...

空空如也

空空如也

1 2 3 4 5 6
收藏数 104
精华内容 41
关键字:

怎样根据一列数据排序