温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-18 20:17:21 阅读:674 作者:yonghu86 栏目:编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

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

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

RDIFramework.NET 中多表关联查询分页实例  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"  href="javascript:;" plain="true" class="easyui-linkbutton" icon="icon-add" title="新增">新增</a>
        <div class='datagrid-btn-separator'>
        </div>
        <a id="a_edit"  href="javascript:;" plain="true" class="easyui-linkbutton" icon="icon-pencil" title="修改">修改</a>
        <div class='datagrid-btn-separator'></div>
        <a id="a_delete"  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.bindheight0 });

            $('#a_add').click(CRUD.add);
            $('#a_edit').click(CRUD.edit);
            $('#a_delete').click(CRUD.del);
        });
        var grid = {
            bindfunction (winSize) {
                $('#list1').datagrid({
                    url'/demo/handler/ProductIn.ashx?action=GetMultiPage',
                    toolbar'#toolbar',
                    title"数据列表",
                    iconCls'icon icon-list',
                    width: winSize.width,
                    height: winSize.height,
                    nowrapfalse//折行
                    rownumberstrue//行号
                    stripedtrue//隔行变色
                    idField'ID'//主键
                    sortName'CREATEON',
                    sortOrder'desc',
                    singleSelecttrue//单选
                    frozenColumns: [[]],
                    columns: [[
            { title'主键'field'ID'width120hiddentrue },
                { title'入库单编码'field'CODE'width130 },
                { title'入库日期'field'INDATE'width150 },
                     { title'入库类型'field'INTYPE'width100 },
                { title'保管员'field'CUSTODIAN'width70 },
                { title'品名'field'FULLNAME'width100 },
                     { title'数量'field'AMOUNT'width80 },
                { title'单价'field'UNITPRICE'width150 }
                    ]],
                    paginationtrue,
                    pageSize5,
                    pageList: [51020]
                });
            },
            getSelectedRowfunction () {
                return $('#list1').datagrid('getSelected');
            },
            reloadfunction () {
                $('#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;
}
作者: EricHu
出处: 
微博: 
Email406590790@qq.com
QQ 交流:406590790 
QQ群:16653241
平台博客: 
CSDN  
CNBLOGS
 关于作者:高级工程师信息系统项目管理师DBA专注于微软平台项目架构管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServerOracle等)技术熟悉JavaDelhpi及Linux操作系统,有扎实的网络知识在面向对象面向服务以及数据库领域有一定的造诣现从事DB管理与开发WinFormWCFWebService网页数据抓取以及ASP.NET等项目管理开发架构等工作
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢

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

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

开发者交流群:
AI

开发者交流群×