美文网首页RDIFramework.NET.NET
RDIFramework.NET 中多表关联查询分页实例

RDIFramework.NET 中多表关联查询分页实例

作者: NET快速开发框架 | 来源:发表于2018-07-06 15:38 被阅读12次

分页非常的常见,基本任何项目都会涉及到分页,这没什么好谈的,大多数我们分页对单表的分页比较多,对多表的分页我们可以通过视图来实现,当然还有其他的方式,在这儿,我以一个实例展示下使用我们的RDIFramework.NET来实现多表联合查询分页的实现,我以Web的形式展示,WinForm方法一样,分页后的界面如下图所示:



  UI上看不出什么,现在我们以代码说明如何实现,使用RDIFramework.NET实现上面的界面代码非常的简单,首先我们看下页面代码,代码如下:

<%@ Page Language="C#" MasterPageFile="~/Site.Master"  AutoEventWireup="true" CodeBehind="ProductInMuliPage.aspx.cs" Inherits="RDIFramework.WebApp.demo.ProductInMuliPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">  
    <div id="toolbar">
        <a id="a_add" style="float:left" href="javascript:;" plain="true" class="easyui-linkbutton" icon="icon-add" title="新增">新增</a>
        <div class='datagrid-btn-separator'>
        </div>
        <a id="a_edit" style="float:left" href="javascript:;" plain="true" class="easyui-linkbutton" icon="icon-pencil" title="修改">修改</a>
        <div class='datagrid-btn-separator'></div>
        <a id="a_delete" style="float:left" href="javascript:;" plain="true" class="easyui-linkbutton" icon="icon-delete" title="删除">删除</a>
    </div>
 
     <table id="list1"></table>     
    <script type="text/javascript">
        $(function () {          
            autoResize({ dataGrid: '#list1', gridType: 'datagrid', callback: grid.bind, height: 0 });
 
            $('#a_add').click(CRUD.add);
            $('#a_edit').click(CRUD.edit);
            $('#a_delete').click(CRUD.del);
        });
        var grid = {
            bind: function (winSize) {
                $('#list1').datagrid({
                    url: '/demo/handler/ProductIn.ashx?action=GetMultiPage',
                    toolbar: '#toolbar',
                    title: "数据列表",
                    iconCls: 'icon icon-list',
                    width: winSize.width,
                    height: winSize.height,
                    nowrap: false, //折行
                    rownumbers: true, //行号
                    striped: true, //隔行变色
                    idField: 'ID', //主键
                    sortName: 'CREATEON',
                    sortOrder: 'desc',
                    singleSelect: true, //单选
                    frozenColumns: [[]],
                    columns: [[
            { title: '主键', field: 'ID', width: 120, hidden: true },
                { title: '入库单编码', field: 'CODE', width: 130 },
                { title: '入库日期', field: 'INDATE', width: 150 },
                     { title: '入库类型', field: 'INTYPE', width: 100 },
                { title: '保管员', field: 'CUSTODIAN', width: 70 },
                { title: '品名', field: 'FULLNAME', width: 100 },
                     { title: '数量', field: 'AMOUNT', width: 80 },
                { title: '单价', field: 'UNITPRICE', width: 150 }
                    ]],
                    pagination: true,
                    pageSize: 5,
                    pageList: [5, 10, 20]
                });
            },
            getSelectedRow: function () {
                return $('#list1').datagrid('getSelected');
            },
            reload: function () {
                $('#list1').datagrid('clearSelections').datagrid('reload', { filter: '' });
            }
        };
    </script>
</asp:Content>

上面的代码,我们就实现了页面部分,现在我们来看下分页的代码,分页在我们框架中已经做了很完美的支持,可以通过多种方式,支持不同类型的数据库的分页实现,直接调用接口方法即可实现。我们看下上面的页面部分调用的ashx中的方法“/demo/handler/ProductIn.ashx?action=GetMultiPage”代码如下:

private string GetProductMultiPage()
{
    var returnJson = "[]";
    var managerMain = new CASE_PRODUCTIN_MAINManager(this.dbHelper, Utils.UserInfo);
    
    var _pageindex = pageindex > 0 ? pageindex : 1;
    var _pagesize = pagesize > 0 ? pagesize : 20;
    int recordCount;
    managerMain.CurrentTableName = @"(SELECT tab1.ID,tab1.CODE,tab1.INDATE,tab1.INTYPE,tab1.CUSTODIAN,tab1.CREATEON,tab2.FULLNAME,tab2.AMOUNT,tab2.UNITPRICE
                                        FROM dbo.CASE_PRODUCTIN_MAIN tab1
                                        INNER JOIN dbo.CASE_PRODUCTIN_DETAIL tab2
                                        ON tab1.ID = tab2.CASE_PRODUCTIN_MAIN_ID) pageData";
 
    managerMain.SelectField = "*";
    var dtProductIn = managerMain.GetDTByPage(out recordCount, _pageindex, _pagesize, null, "CREATEON DESC");
    if (dtProductIn != null && dtProductIn.Rows.Count > 0)
    {
        returnJson = JSONhelper.FormatJSONForEasyuiDataGrid(recordCount, dtProductIn);
    }
 
    return returnJson;
}

上面的代码可供开发者参考,这样不管你是多少表的关联查询,分页的问题都可以迎刃而解,WinForm的类似。   
相关文章:

  一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

** RDIFramework.NET官方网站:**http://www.rdiframework.net/

** RDIFramework.NET官方博客:**http://blog.rdiframework.net/

  同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏! 

  **RDIFramework.NET****框架由专业团队长期打造、一直在更新、一直在升级,请放心使用!**  

欢迎关注RDIFramework.net框架官方公众微信微信号:guosisoft),及时了解最新动态。

扫描二维码立即关注

image

相关文章

  • RDIFramework.NET 中多表关联查询分页实例

    分页非常的常见,基本任何项目都会涉及到分页,这没什么好谈的,大多数我们分页对单表的分页比较多,对多表的分页我们可以...

  • python面试题01

    1、什么是多表关联查询,有几种多表关联的查询方式,分别是什么? 多表关联查询概念: 多表关联查询分类:1.1内连接...

  • MySQL03

    DQL查询语句 分页查询 分组函数 分组查询 子查询 多表连接查询 1、分页查询 当数据库中数据过多时,不能一次全...

  • MySQL的多表关联查询

    一、多表关联查询 多表关联查询是使用一条SQL语句,将关联的多张表的数据查询出来。 1.1 交叉查询 交叉查询就是...

  • mybatis的多表关联查询

    平时项目中不可避免的会使用多表关联查询。 xml文件的写法 分页插件的使用,使用pagehelperpackage...

  • Oracle学习(二)

    --======================================多表关联查询--查询员工编号,员工...

  • mybatis-plus配置xml进行多表查询

    mybatis-plus多表查询,需自己写xml进行查询。 在mapper中定义,如需分页查询可添加page。 在...

  • 分页查询

    分页查询实例

  • Java mac idea hibernate的使用04

    1. HQL语法 1.1 基本语法 查全部 排序 条件查询 分页查询 聚合查询 投影查询 1.2 HQL多表查询 ...

  • 什么是多表关联查询,有几种多表关联查询的方式,分别是什么?

    什么是多表关联查询?有时一个查询结果需要从两个或两个以上表中提取字段数据,此时需要使用的就是多表关联查询。链接查询...

网友评论

    本文标题:RDIFramework.NET 中多表关联查询分页实例

    本文链接:https://www.haomeiwen.com/subject/qoqbuftx.html