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

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/28416127 RDIFramework.NET 中多表关联查询分页实例RDIFramework.NET,基于.NET的快速信息化系统开发、整合框架,给用户和开发者最佳的.Net框架部署方案。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/28416127

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

RDIFramework.NET,基于.NET的快速信息化系统开发、整合框架,给用户和开发者最佳的.Net框架部署方案。该框架以SOA范式作为指导思想,作为异质系统整合与互操作性、分布式应用提供了可行的解决方案。

  分页非常的常见,基本任何项目都会涉及到分页,这没什么好谈的,大多数我们分页对单表的分页比较多,对多表的分页我们可以通过视图来实现,当然还有其他的方式,在这儿,我以一个实例展示下使用我们的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的类似。   


作者: EricHu 
出处:http://blog.csdn.net/chinahuyong  
Email:406590790@qq.com 
QQ交流:406590790 
QQ群:237326100 
框架博客:http://blog.csdn.net/chinahuyong 
               http://www.cnblogs.com/huyong
RDIFramework.NET,基于.NET的快速信息化系统开发、整合框架,给用户和开发者最佳的.Net框架部署方案。 
关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,在面向对象、面向服务以及数据库领域有一定的造诣。现主要从事基于 RDIFramework.NET 框架的技术开发、咨询工作,主要服务于金融、医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。 
如有问题或建议,请多多赐教! 
本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。

相关文章
|
2月前
|
开发框架 JavaScript .NET
asp.net中条件查询+分页
asp.net中条件查询+分页
17 1
|
2月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
74 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
5月前
|
SQL 开发框架 .NET
|
2月前
|
SQL 数据库
使用ADO.NET查询和操作数据
使用ADO.NET查询和操作数据
12 0
|
3月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
72 0
|
5月前
|
开发框架 .NET
|
5月前
|
开发框架 .NET C#
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
46 0
|
17天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
22 0
|
2月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
32 0