`
IT小菜菜
  • 浏览: 6851 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

treeTable子节点数据分页显示

阅读更多

       最近在做政府的项目,页面UI较为官方,这里用到一个treeTable显示某些数据,这些数据是用windows服务按计划执行的,也就是说每天数据都会增加,那么当时间长了以后,treeTable子节点下的数据会非常多,显示在页面上将会很难看,所以需要把每个节点下的数据进行分页。

       使用过treeTable的想必都知道beforeExpand和OnSelect两个事件,具体含义请百度。这里使用异步加载的方式,即在beforeExpand事件中调用后台方法返回json数据。那么这里要实现分页的关键就是如何将分页的html加到json数据结果中,并且要使得每一组json数据的分页响应自己的换页事件。分页的做法有很多,控件也有很多,无论是如何生成和绑定的分页控件,归根结底还是js的处理,那么我们将分页简单写成html代码,例如

<tr pid='id'>
      <td>
           <a onclick="GetJson(id,pageIndex)" href="javascript:void(0)">上一页</a>
           <a onclick="GetJson(id,pageIndex)" href="javascript:void(0)">下一页</a>
      </td>
<tr>

       简单来说,这里需要在用代码生成的html中直接写好分页a标签的onclick事件,注意到这里有两个参数,这个函数的功能先放一下,先说一下treeTable的布局。

       起初的做法是用treeTable的addChild方法将json数据添加到treeTable中,但是之后在处理分页的时候发现有些问题不好解决,这里说一下另一种解决方法。

 

<table>
         @foreach(var item in list)
         {
         <tr id="@item.Id" haschild="true">
               <td></td>
               <td>标题</td>
         </tr>
         <tbody id="tbody_"+item.Id></tbody>
         }
</table>
        这里循环了一个list用于显示每一条数据,用Id来区分每一条数据,这个一定要是唯一的,然后再这一行下面添加一个tbody,id同样用item的Id来区分。到这里就显而易见了,我们需要根据点击的节点,调用后台方法返回html然后使用$("#tbody_"+id).html(data)即可,在beforeExpand事件中添加

 

 

beforeExpand事件:
function($treeTable,id){
    GetJson(id,1);
}
script方法:
var GetJson=function(id,pageIndex){
    $.post(url,{id:id,pageIndex:pageIndex},function(data){
         $("#tbody_"+id).html(data);
         $("#tbody_"+id).show();
    }
}
       我们在处理分页的html中添加的onclick事件便是调用这里方法,第一个参数传递行的Id,第二个参数传递需要跳转到的页码,然后再后台读取数据的方法中可以根据这两个参数筛选出数据。注意到这里添加了一个show()方法,是为了和节点的收起想对应的。

 

       由于我们添加了tbody,没有使用addChild来添加子节点,所以破坏了treeTable的结构,那么他在收起的时候无法自动帮我们收起下面对应的tbody,需要我们手动去处理。这里使用的treeTable的节点机制是这样的,一个节点包含有两个Class,一个通用的vsStyle_active_node和一个vsStyle_shut,第二个Class为节点未展开时,当节点展开后会将这个Class Remove掉然后添加一个vsStyle_hover_open,那么我们需要处理节点收起的方法时只需要处理vsStyle_hover_open的事件,注意这里不能直接写$(".vsStyle_hover_open").click的方法,无论放在外部或者是放在beforeExpand事件中,因为当页面第一次加载节点数据时,所有节点的Class都是shut的,所以之后点击vsStyle_hover_open的事件是无法响应的,所以这里在外部添加如下的点击方法

 

$(".vsStyle_active_node").unbind("click").click(function () {
        if ($(this).hasClass("vsStyle_hover_open")) {
            $("#div_" + $(this).parent().parent().attr("id")).hide();
        }
    });
 这里Class中的hover是当鼠标移在节点上的Class,如果未移动在节点上,那么Class名称为vsStyle_open,因为我们点击收起时鼠标必然在节点上所以这里有hover。

 

到这里基本就实现了treeTable的分页,之后可以根据自己喜好,修改分页的样式。
分享到:
评论

相关推荐

    layui treegrid 分页

    4. **处理树形结构**:定义数据格式,确保包含树形结构所需的信息,如父节点ID、子节点列表等。 5. **分页配置**:配置分页参数,如每页显示条数、页码等,并处理分页事件,如点击页码时重新请求数据。 6. **自定义...

    Layui的树形表格treeTable

    - **TreeTable结构**:在Layui中,树形表格是由普通的表格扩展而来,每个单元格可以展开或折叠,展示其子节点。表格的每一行代表一个节点,通过图标显示其层级关系。 - **数据格式**:树形表格的数据通常是一个...

    jQuery树型表格jquery-treetable

    - **API接口**: 提供多种API,如`treetable('toggle', nodeId)`用于切换节点的展开状态,`treetable('load', parentId, data)`用于加载子节点数据。 4. **示例代码**: ```html &lt;td&gt;Node 1 &lt;td&gt;Node ...

    layui treetable

    为了实现树形结构,每个行数据需要包含展开/折叠状态的控制信息,以及子节点数据的引用。 后台部分,通常使用Java来处理数据逻辑和服务器通信。Java是一种广泛应用的后端编程语言,尤其适合构建企业级应用。在layui...

    layui treeTable生成树形表格实例

    JSON数据通常包含父节点ID、子节点ID等信息,以表达树形结构。我们可以使用layui的`treeTable.reload`方法,将JSON数据传入,更新表格内容。 5. 事件监听:为了实现节点的展开、关闭等交互效果,我们需要监听table...

    树形表格 treetable 完整版 带演示demo例子

    - 设置数据:将数据源绑定到表格,数据可以是JSON格式,包含父节点和子节点信息。 - 添加交互:绑定事件监听器,处理用户的点击、展开、折叠等操作。 总之,“树形表格treetable完整版”提供了一种高效且灵活的...

    LayUI含表格的TreeTable

    1. **数据格式**:`TreeTable`的数据源需要包含特定的字段,如`id`(唯一标识)、`pid`(父级ID)和`children`(子节点数组)。在LayUI中,你可以通过`layui.data`方法获取或设置这样的数据。 2. **初始化`...

    jquery treetable

    4. **异步加载**: 可以实现分页和延迟加载,只在需要时加载子节点,优化性能。 5. **API**: 提供丰富的API,允许开发者控制表格的行为,如展开、折叠、添加和删除节点等。 6. **主题和样式**: 可以根据项目需求定制...

    jqueryTreeTable+ajax(构建树形表格)

    4. **懒加载**:仅在节点被展开时才加载其子节点,减少初次加载时的数据量。 通过以上步骤,我们可以构建出一个交互性强、响应速度快的树形表格。在实际项目中,还可以根据需求进一步定制样式、添加更多交互效果,...

    jQueryTreeTable

    在VS2012和MVC4.0的环境中,可以通过AJAX请求从服务器获取子节点数据,然后用这些数据动态构建树表的子层级。 **MvcJqueryTreeTable** 这个文件名很可能代表了项目的核心部分,包含用于实现这一功能的控制器、视图...

    jquery TreeTable

    1. **可折叠的节点**:`jQuery TreeTable` 允许用户通过点击行来展开或折叠其子节点,提供了一种交互式的浏览体验。 2. **自动排序**:当表格加载时,可以自动根据预设规则对节点进行排序。 3. **自定义样式**:支持...

    jquery treeTable包

    - **树状显示**:TreeTable 能将表格中的行转换为树状结构,每一行都可以作为一个节点,通过展开或折叠箭头来控制其子节点的可见性。 - **动态加载**:对于大数据量的情况,TreeTable 支持异步加载子节点,只在需要...

    treetable jquery tree

    9. **性能优化**:对于大型数据集,可以使用懒加载(lazy loading)技术,只在需要时加载子节点,以提高页面性能和用户体验。 10. **示例与实践**:为了更好地理解和应用jQuery TreeTable,你可以参考官方提供的...

    ludo-jquery-treetable

    - **异步加载**:对于大数据量的场景,ludo-jquery-treetable支持懒加载策略,只在需要时请求并渲染子节点,提高页面性能。 在实际应用中,我们需要注意以下几点: 1. **数据结构**:确保服务器返回的数据格式符合...

    bootstrap树形表格

    1. **多层级展开**:用户可以点击表格行来展开或折叠子节点,展现或隐藏子层级的数据。 2. **可定制化**:支持自定义图标、颜色、字体等样式,以适应不同的应用场景和品牌需求。 3. **交互性**:提供点击事件、展开/...

    WPF 列表树

    WPF列表树控件,通常称为`TreeView`,它允许用户以树形结构展示数据,每个节点可以展开或折叠,显示其子节点。`TreeView`控件与传统的`ListView`相比,更适用于展示具有嵌套关系的数据。`TreeView`通过`TreeViewItem...

    二级表格的两种实现方式.rar

    实现treetable二级表格,需要设置相应的数据结构,比如添加一个表示层级关系的字段,同时配置treetable的扩展选项,如toggleColumn、data、state等,控制节点的展开和收起行为。 jqGrid和treetable各有优势,jqGrid...

    tree _table

    在编程实现中,Tree Table通常基于一个数据模型,该模型包含节点ID、父节点ID、节点名称、子节点列表等属性。这些属性用于构建和维护树的结构。 3. **渲染技术** Tree Table的渲染主要涉及前端技术,如HTML、CSS...

    树状表格,可编辑

    3. 删除节点:用户可以选择删除某个节点,同时处理好与其关联的子节点。 4. 移动节点:节点可以在树的不同位置之间拖放,调整层级关系。 5. 展开/折叠:控制树状结构的展开程度,便于查看或隐藏子节点。 6. 数据验证...

    支持layui树编辑的插件,也可以作为树形表格

    在实际使用过程中,开发者可以通过API调用来控制树形结构的动态行为,例如展开/折叠节点、选中节点、添加子节点等。这些API通常会与后端接口相结合,实现实时的数据更新和交互。此外,对于不熟悉layui或者JavaScript...

Global site tag (gtag.js) - Google Analytics