您好,登錄后才能下訂單哦!
RDIFramework.NET 中多表關(guān)聯(lián)查詢分頁實(shí)例
RDIFramework.NET,基于.NET的快速信息化系統(tǒng)開發(fā)、整合框架,給用戶和開發(fā)者最佳的.Net框架部署方案。該框架以SOA范式作為指導(dǎo)思想,作為異質(zhì)系統(tǒng)整合與互操作性、分布式應(yīng)用提供了可行的解決方案。
分頁非常的常見,基本任何項(xiàng)目都會涉及到分頁,這沒什么好談的,大多數(shù)我們分頁對單表的分頁比較多,對多表的分頁我們可以通過視圖來實(shí)現(xiàn),當(dāng)然還有其他的方式,在這兒,我以一個(gè)實(shí)例展示下使用我們的RDIFramework.NET來實(shí)現(xiàn)多表聯(lián)合查詢分頁的實(shí)現(xiàn),我以Web的形式展示,WinForm方法一樣,分頁后的界面如下圖所示:
UI上看不出什么,現(xiàn)在我們以代碼說明如何實(shí)現(xiàn),使用RDIFramework.NET實(shí)現(xiàn)上面的界面代碼非常的簡單,首先我們看下頁面代碼,代碼如下:
<%@ 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.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: "數(shù)據(jù)列表", 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: '數(shù)量', field: 'AMOUNT', width: 80 }, { title: '單價(jià)', 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>
上面的代碼,我們就實(shí)現(xiàn)了頁面部分,現(xiàn)在我們來看下分頁的代碼,分頁在我們框架中已經(jīng)做了很完美的支持,可以通過多種方式,支持不同類型的數(shù)據(jù)庫的分頁實(shí)現(xiàn),直接調(diào)用接口方法即可實(shí)現(xiàn)。我們看下上面的頁面部分調(diào)用的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; }
上面的代碼可供開發(fā)者參考,這樣不管你是多少表的關(guān)聯(lián)查詢,分頁的問題都可以迎刃而解,WinForm的類似。
作者: EricHu 出處: 微博: Email: 406590790@qq.com QQ 交流:406590790 QQ群:16653241 平臺博客: 【CSDN】 【CNBLOGS】 關(guān)于作者:高級工程師、信息系統(tǒng)項(xiàng)目管理師、DBA。專注于微軟平臺項(xiàng)目架構(gòu)、管理和企業(yè)解決方案,多年項(xiàng)目開發(fā)與管理經(jīng)驗(yàn),曾多次組織并開發(fā)多個(gè)大型項(xiàng)目,精通DotNet,DB(SqlServer、Oracle等)技術(shù)。熟悉Java、Delhpi及Linux操作系統(tǒng),有扎實(shí)的網(wǎng)絡(luò)知識。在面向?qū)ο?、面向服?wù)以及數(shù)據(jù)庫領(lǐng)域有一定的造詣?,F(xiàn)從事DB管理與開發(fā)、WinForm、WCF、WebService、網(wǎng)頁數(shù)據(jù)抓取以及ASP.NET等項(xiàng)目管理、開發(fā)、架構(gòu)等工作。 如有問題或建議,請多多賜教! 本文版權(quán)歸作者和CNBLOGS博客共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過郵箱或QQ 聯(lián)系我,非常感謝。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。