لا يمكن لمكونات الجدول الأصلي في Bootstrap تلبية عرض بيانات بسيط ولا يمكنها تلبية المزيد من المتطلبات التشغيلية. بالطبع ، يمكنك العثور على مكون جدول قائم على bootstrap يسمى "Datatables-1.10.11" ، ولكن إذا كنت لا تعرف الكثير عن واجهة برمجة التطبيقات ، فسيكون من المؤلم استخدامه. ومع ذلك ، إذا اخترت استخدام JQGrid ، فإن هذا البرنامج التعليمي سيوفر لك حلاً لهذا الجدول التشغيلي.
1. عرض التأثير
حسنًا ، فقط أظهر هذه الصورة. أعتقد أنك وقعت في حب نسخة bootstrap من JQGrid. إنه متوافق للغاية مع bootstrap وهو ببساطة مثالي. بالطبع ، يتطلب هذا بعض التغييرات على JQGrid للسبب وتغليف المكونات.
2. تنزيل الموارد
على أي حال ، أنا أحب المشاركة. يمكنك تنزيل رمز مكون JQGrid من الموقع الرسمي لـ JQGrid ، ولكنه يتطلب بعض التغييرات بعد التنزيل. ثم أقوم بتحميل JQGrid المعدلة مباشرة إلى git ، وتحتاج فقط إلى استيراد الملفات المقدمة إلى مشروعك المقابل.
بالإضافة إلى ذلك ، تحتاج أيضًا إلى تنزيل jQuery-ui-1.10.0.custom.css ، ولن أقدم عنوان التنزيل ، لكنني أعتقد أنك ستجدها بالتأكيد. حتى لو كنت تستخدم فتاة بايدو التي لديها حوادث في كثير من الأحيان ، يمكنك العثور عليها.
3. ما هذا المقال
منذ أن قمت بإنشاء مجموعة QQ ، انضم بعض الطلاب إلى المجموعة في "دفق مستمر" ، لكنني وجدت أيضًا أن الخطوة الأولى في المجموعة جاءت إليّ لأطلب عرضًا تجريبيًا أو رمز المشروع. أنا لا أحب هذا. افعل ذلك بنفسك ، وقم بتنفيذ ما يلي وتحويله ، وسيكون الشيء الخاص بك. من الواضح أنك لن تحصل على مزيد من المساعدة من نسخ الكود الخاص بي بالكامل. آمل أن يأخذ الطلاب المذكورون المبادرة عند الدراسة.
بعد قول الهراء الصغير أعلاه ، دعنا نعود إلى النقطة ونتحدث عما تتحدث عنه مدونتنا بشكل أساسي وما هو مفتاح تضمين JQGrid في bootstrap. أنا ألخصها على النحو التالي:
مخطط تخطيط jqgrid في bootstrap jqgrid الخاصين البناءة jqgrid عملية بيانات jqgrid في bootstrap
يتم تقسيمها مبدئيًا إلى الأجزاء المذكورة أعلاه لتوضيحها ، ولكن تجدر الإشارة إلى أنه بسبب قيود المساحة ، يتم توفير الأفكار فقط وبعض الكود في المدونة.
①. خطة تخطيط JQGrid في bootstrap
<! doctype html> <html lang = "zh-cn"> <٪@ page language = "java" contentType = "text/html ؛ charset = Utf-8" file = "/components/common/csslib.jsp" ٪> <head> <link type = "text/css" rel = "stylesheet" href = "$ {ctx} /css/deal/my_pay_list.css"/> </body> <fiv> ACTION = "$ {ctx}/deal/dataablePayDealordersList" method = "post"> <viv> <div> <label for = "name"> اسم المشروع: </label> <viv> <input type = "text" name = "id" id = "name" placeholder = "الرجاء إدخال اسم المشروع"/" id = "searchbtn"> Search </utton> </viv> </viv> <viv> <viv> <table id = "pagegrid" rel = "jqgridform"> </table> <div id = "pagegridpager"> </viv> </div> </fump> </div> <٪@ file = "/components/jslib src = "$ {ctx} /js/deal/my_pay_list.js"> </script> </body> </html>مشاريع كل شخص تختلف اختلافا كبيرا. في الكود المدرج ، نركز فقط على قسم JQGrid:
id="jqgridForm" ، هنا لدينا نموذج مع طبقة من ظروف البحث لـ JQGrid ، أي جزء البحث المدرج في الالتماسات. عند النقر فوق زر البحث ، يتم إرسال شروط الاستعلام لحقل النموذج إلى وحدة التحكم ، ويتم الحصول على البيانات التي تم الحصول عليها. id="searchBtn" ، يحدد زر البحث ، والذي سيتم استخدامه لاحقًا على النموذج. <table id="pageGrid" rel="jqgridForm"></table> <div id="pageGridPager"></div> حدد عنصر الجدول لـ JQGrid وعنصر تذييل JQGrid. توافق القواعد التي يستخدمها مشروعي مؤقتًا على هذه القاعدة ، ويمكنك أيضًا الحصول على قواعدك الخاصة. من خلال تحديد معرف النموذج بواسطة REL ، من الأسهل استخدام نموذج استرجاع الجدول. ② ، المعلمات البناءة الخاصة بـ JQGrid
بناء المعلمات ، قمت باستخراجها في my_pay_list.js في ①.
$ (function () {var jqoption = {datatype: "xml" ، mtype: "post" ، smrinktofit: true ، viewRecords: false ، rownumbers: false ، atowidth: true ، height: "100 ٪" الكمية "،" حالة الطلب "،" العملية "] ، colmodel: [{name: 'id: ex" ، index:' id '، hidden: true} ، {name:' status '، index:' status '، hidden: true} ، (CellValue == 'تكلفة الدفع الإجمالية:') {return cellValue ؛ Parseint ($ (RowObject) .find ("الحالة"). text () ؛ {return '<a target = "_ blank" href = "' + common.ctx + '/deal/showdealor/' + ''> عرض التفاصيل </a> '؛ ] ، XmlReader: {REFEREMITEMS: false ، الجذر: "PageGrid" ، الصف: "MAP" ، الصفحة: "Page" ، Total: "Total" ، السجلات: "السجلات" ، المعرف: "ID" ، ROWNUM: 50 ، قائمة الصفوف: [50 ، 100 ، 200 ، 300] ، PAGER: function () {var $ form = $ ("#" + $ ("#pagegrid"). attr ("rel")) ؛ $ ("#pagebrid"). } // Dialog if ($.يوصي الطلاب الذين ليسوا على دراية بـ JQGrid على الإطلاق قراءة عرض JQGrid والوثائق الرسمية لـ JQGrid أولاً. بالطبع ، بالنسبة للطلاب الذين يعرفون بالفعل JQGrid و DOC و DEMO أمر لا بد منه.
هناك العديد من السمات المدرجة في الملف أعلاه. لن أقدم jqgrid أكثر من اللازم. الموضوع الرئيسي لهذه المقالة هو تقديم كيفية تضمين JQGrid في bootstrap. النقطة الرئيسية هي عدم تقديم JQGrid. سأقدم فقط بعض النقاط الرئيسية:
formatter: function(cellvalue, options, rowObject) { ، لا يزال يتم استخدام التنسيقات في كثير من الأحيان ، لذلك من المهم للغاية الحصول على قيمة الخلية المقابلة. يستخدم My JQGrid تنسيق بيانات XML (نوع البيانات: "XML") ، بحيث يمكنك العثور على قيمة عمود Deal_ID المقابل من خلال $(rowObject).find("deal_id").text() . xmlReader : { repeatitems : false, root : "PageGrid", ، انتبه إلى قيم المعلمة في XmlReader. في المقدمة التالية ، سيتم تقديم تشغيل بيانات JQGrid بالتفصيل ، والذي يرتبط بتغليف بيانات XML الخلفية. $("#pageGrid").footerData("set", {image_str : "支付总花费:", order_price : json.message}); فيما يتعلق بطريقة تذييل ، فهي مريحة للغاية للاستخدام ، ويمكن الرجوع إلى التأثير على أنه التأثير. initEnv(jqOption); طريقة. بعد الصفحة Onload ، نقوم بتمرير معلمات التهيئة لـ JQGrid إلى طريقة initenv. في المعيار اللاحق لـ JQGrid في bootstrap ، سنقدم طريقة initenv. ③ ، نموذج JQGrid في bootstrap
في ② ، لاحظنا طريقة initenv ، لذلك تم تصميم هذه الطريقة مع عمل تغليف وحدي على وجه التحديد لـ JQGrid.
طريقة initenv
وظيفة initenv (jqoption) {$ (window) .resize (function () {initlayout () ؛}) ؛ initui (null ، jqoption) ؛}في هذه الطريقة ، سنرى طريقة initlayout وطريقة initui ، وسيتم تقديم المحتوى المحدد لاحقًا.
initlayout
الدالة initlayout () {$ ("الجدول [rel = jqgridform]"). كل (function () {var rel = $ (this) .attr ("rel") ؛ if (rel) {var $ form = $ ("#" + rel) ؛ var tablewidth = $ form.width ()هذا هو ، عندما يتم تحجيم النافذة ، نعيدود عرض JQGrid للتكيف مع تخطيط Bootstrap المستجيب. الطريقة المستخدمة هي طريقة setGridWidth من JQGrid.
initui
دالة initui (_box ، jqoption) {var $ p = $ (_ box || document) ؛ if (jqoption) {yunm.debug ("initializeJQGrid") ؛ var $ form = $ ("#" + $ ("#pagegrid"). attr ("rel")) ؛ yunm.debug (yunm.array2obj ($ form.serializearray ())) ؛ // تهيئة var op = $ .Extend ({url: $ form.attr ("Action") ، postdata: yunm.array2obj ($ form.SerializeArray ()) ،} ، jqoption) ؛ $ ("#pagegrid"). jqgrid (op) ؛ // Search Button $ ("#searchbtn" ، $ form) .click (function () {$ ("#pagegrid"). $ ("#pagegrid"). Trigger ("ReloadGrid") ؛ // شريط الأدوات ، قم بإزالة الزاوية المستديرة من الزر $ (". }} Array2Obj: function (Array) {var params = $ ({}) ؛ $ .each (Array ، function (i) {var $ param = $ (this) [0] ؛ params.attr ($ param.name ، $ param.value) ؛}) ؛ إرجاع معاملات [0] ؛} ،إذا كنت قد قرأت سلسلتي السابقة من المقالات ، فلن تكون غير مألوف للغاية مع طريقة initui. من الطبيعي أن يكون الأصدقاء الذين يعرفون DWZ غير مألوفين به. لا تزال معظم القوالب في مشروعي تعتمد على DWZ. شكرا لك هؤلاء كبار السن.
var $form = $("#" + $("#pageGrid").attr("rel")); نظرًا لأننا نربط شرط النموذج النموذج على JQGrid ، يمكننا الحصول على كائن النموذج هنا. عندما نحصل على كائن النموذج ، سنحصل بشكل طبيعي على قيمة حقل البحث ( $form.serializeArray() ). بعد الحصول على قيمة حقل البحث للنموذج ، تحتاج إلى القيام ببعض المعالجة في هذا الوقت. نحن نعلم أنه عندما يمر JQGrid معلمات إلى وحدة التحكم ، من الضروري إرسال الحقول ذات الصلة بالترحيل والفرز (الصفحة ، الصفوف ، SORD ، SIDX). الطريقة المستخدمة هي $("#pageGrid").jqGrid({postData:xxx}); عادة ، عندما نرسل نماذج النماذج ، نحتاج فقط إلى استخدام $form.serializeArray() ، ولكن إذا كان في هذا الوقت ، فقط استبدل xxx بـ $form.serializeArray() ، فلن يتم الحصول على الحقول ذات الصلة والترحيل (الصفحة ، الصفوف ، sord ، sidx) في وحدة التحكم. هذا صراع. كيف تتعامل معها في هذا الوقت؟ الحل هو الاعتراض على بيانات النموذج (طريقة ARRAY2OBJ) ، ثم نرسل قيمة حقل البحث مع الحقول ذات الصلة للترحيل والفرز إلى وحدة التحكم من خلال var op =$.extend({url:$form.attr("action"),postData:YUNM.array2obj($form.serializeArray()),},jqOption);$("#pageGrid").jqGrid(op); $("#searchBtn", $form).click بربط بيانات JQGrid من خلال تغليف حدث النقر. $(".btn", $form).each(function() {
جزء من تشغيل البيانات ، على ما أعتقد ، يتضمن مرور المعلمة البحث ، ومرور المعلمة ترقيم الصفحات ، وكتابة عبارات SQL.
فيما يتعلق بتمرير المعلمة ، تم إدخال تغليف المعلمة الواجهة الأمامية في ③. دعنا نلقي نظرة على كيفية معالجة البيانات في وحدة التحكم.
أولاً ، دعنا نحدد PageGrid ، وهو مصدر بيانات XMlReader في JQGrid.
package com.honzh.common.page ؛ import java.util.list ؛ import com.teughtworks.xstream.annotations.xstreamalias ؛ xStreamalias ("pagegrid")@cumpresswarnings ("Rawtypes") pagegrid {private int page ؛ إجمالي int الخاص ؛ سجلات int الخاصة ؛ بيانات القائمة الخاصة ؛ public int getPage () {return this.page ؛ } public void setPage (int page) {this.page = page ؛ } public int getTotal () {return this.total ؛ } public void settotal (int total) {this.total = total ؛ } public int getRecords () {return this.records ؛ } public void setRecords (int records) {this.records = re records ؛ } القائمة العامة getData () {return this.data ؛ } public void setData (data data) {this.data = data ؛ }}Xstream.jar مطلوب في المشروع وقم بتنزيله بنفسك.
xstreamcomponent.java
package com.honzh.common.page ؛ import org.apache.commons.lang.stringutils ؛ import com.theaughterWorks.xstream.xstream ؛ import com.teughtworks.xstream.converters com.theaughtworks.xstream.mapper.xstream11xmlfriendlymapper ؛ فئة عامة XstreamComponent {private xstream xstream ؛ static xstreamcomponent newinstance () {xstreamcomponent xmlcomponent = new xstreamcomponent () ؛ xmlcomponent.alias (فئة جديدة [] {pagegrid.class}) ؛ إرجاع xmlcomponent ؛ } public xstreamcomponent () {this.xstream = new xstream (new DomDriver ()) ؛ } السلسلة العامة toxml (Object obj) {return this.xstream.toxml (obj) ؛ } السلسلة العامة topagexml (Object OBJ) {registerConverter (جديد mapCustomConverter (جديد defaultMapper (xstream1xmlfriendlymapper.class.getClassloader ()))) ؛ إرجاع toxml (OBJ) ؛ } كائن عام من pagexml (سلسلة xml) {registerConverter (جديد mapCustomConverter (جديد defaultMapper (xstream1xmlfriendlymapper.class.getClassloader ()))) ؛ العودة من xml (xml) ؛ } الكائن العام من xml (String xml) {return this.xstream.fromxml (xml) ؛ } suppressWarnings ("RawTypes") public processantaNtations (نوع الفئة) {this.xstream.processannotations (type) ؛ } suppressWarnings ("RawTypes") public processannotations (class [] أنواع) {this.xstream.processannotations (الأنواع) ؛ } suppressWarnings ("RawTypes") public void leas (اسم السلسلة ، نوع الفئة) {this.xstream.alias (name ، type) ؛ } suppressWarnings ("RawTypes") public void alias (class [] types) {for (نوع الفئة: أنواع) {string className = type.getName () ؛ حاول {string [] classNames = stringUtils.split (className ، ".") ؛ this.xstream.alias (classNames [(classnames.length - 1)] ، type) ؛ } catch (استثناء ex) {this.xstream.alias (className ، type) ؛ }}} public void registerConverter (Converter Converter) {this.xstream.registerConverter (Converter) ؛ } suppressWarnings ("RawTypes") public void USeAttributefor (class definedIn ، string fieldName) {this.xstream.useattributefor (definedIn ، fieldName) ؛ }}يتم تغليف غربة الصفحة بشكل أساسي ككائن XML ، ثم يتم تمريرها إلى الواجهة الأمامية.
MapCustomConverter.java
package com.honzh.common.page ؛ استيراد java.util.hashmap ؛ استيراد java.util.hashtable ؛ استيراد java.util.iterator ؛ استيراد java.util.map ؛ import com.theagtworks.xstream.colling.marshallingcontext ؛ com.theaughterWorks.xstream.io.hierarchicalstreamreader ؛ import com.teughtworks.xstream.io.hierarchicalstreamwriter ؛ import com.theaughterworks.xstream.mapper } suppressWarnings ("RawTypes") public boolean canconvert (نوع الفئة) {return (type.equals (hashmap.class)) || (type.equals (hashtable.class)) || (type.getName (). يساوي ("java.util.linkedhashmap")) || (type.getName (). يساوي ("sun.font.attributemap")) ؛ } suppressWarnings ({"RawTypes"}) Marshal public void (مصدر الكائن ، كاتب HierarchicalStreamWriter ، SkarlingContext Context) {map map = (map) source ؛ لـ (iterator iterator = map.entryset (). iterator () ؛ iterator.hasNext () ؛) {map.entry entry = (map.entry) iterator.next () ؛ الكاتب. startnode (intrad.getKey () == null؟ "null": enter.getKey (). الكاتب. الكاتب. endnode () ؛ }} suppressWarnings ("RawTypes") الكائن العام unmarshal (HierarchicalStreamReader Reader ، unmarshallingcontext context) {map map = (map) createCollection (context.getRequiredType ()) ؛ populatemap (القارئ ، السياق ، الخريطة) ؛ خريطة العودة } suppressWarnings ({"rawtypes" ، "uncheded"}) populatemap populateMap (hierarchicalstreamreader ، سياق unmarshallingcontext ، خريطة الخريطة) {بينما (reader.hasmorechildren ()) {reader.movowown () ؛ مفتاح الكائن = reader.getnodename () ؛ قيمة الكائن = reader.getValue () ؛ map.put (المفتاح ، القيمة) ؛ reader.moveup () ؛ }}}يقوم بشكل أساسي بتحويل HashMap الذي تم استرداده في قاعدة البيانات إلى بيانات تنسيق XML القياسية.
baseconditionvo.java
package com.honzh.common.persistence ؛ استيراد java.util.hashmap ؛ استيراد java.util.map ؛ استيراد org.apache.ibatis.session.rowbounds ؛/** * * setting class on antepination query. <br> * * 2. pagenum─ الذي صفحة. <br> * 3.numperpage-كيف تظهر الصفحة؟ عندما يكون فارغًا ، يتم عرض page_show_count. <br> * 4.totalcount ─. TotalCount/NumperPage = عدد الصفحات <br> * 5.Dordfield─ أعمدة. <br> * 6.edordirection - اتجاه الفرز. * </p> */public class baseconditionvo {public final static int page_show_count = 50 ؛ pagenum private = 1 ؛ private int numperpage = 0 ؛ TotalCount الطويل الخاص = 0 ؛ سلسلة خاصة Orderfield = "" ؛ orderdirection orderdirection = "" ؛ /*** fields PS: تغليف أنواع المعلمات. */ MAP الخاص <string ، Object> mo = new HashMap <string ، Object> () ؛ public int getPagenum () {return pagenum ؛ } public void setPagenum (int pagenum) {this.pagenum = pagenum ؛ } public int getNumperPage () {return numperpage> 0؟ numperpage: page_show_count ؛ } public void setNumperPage (int numperpage) {this.numperPage = numperPage ؛ } السلسلة العامة getorderfield () {return orderfield ؛ } public void setorderfield (string orderfield) {this.orderfield = orderfield ؛ } السلسلة العامة getorderDirection () {return "desc" .equals (OrderDirection)؟ "DESC": "ASC" ؛ } public void setorderDirection (string orderdirection) {this.orderDirection = OrderDirection ؛ } public long getTotalCount () {return totalCount ؛ } public void setToTalCount (totalCount long) {this.totalCount = totalCount ؛ } public int getStartIndex () {int pagenum = this.getPagenum ()> 0؟ this.getPagenum () - 1: 0 ؛ إرجاع pagenum * this.getNumperPage () ؛ } public rowbounds createrowbounds () {rowbounds ro = new rowbounds (this.getStartIndex () ، this.getNumperPage ()) ؛ إرجاع رو. } / ** * title: addParams * description: إضافة شروط الاستعلام * param مفتاح * param value * / public void addParams (مفتاح السلسلة ، قيمة الكائن) {this.getmo (). put (المفتاح ، القيمة) ؛ } / ** * title: getParams * description: الحصول على شروط الاستعلام * @param مفتاح * regurn * / كائن عام getParams (مفتاح السلسلة) {return this.getmo (). get (key) ؛ } / ** * return the mo * / public map <string ، object> getMo () {return mo ؛ } / ** * param mo * mo to set * / public void setmo (map <string ، object> mo) {this.mo = mo ؛ } Override Public String ToString () {return "الشرط:" + pagenum + "،" + numperPage + "،" + TotalCount + "،" + Orderfield + "،" + OrderDirection + "،" + MO ؛ }}كائن بيانات الاستعلام للترقيم ، بما في ذلك الحقول الترحيل والفرز والبحث.
محمي Baseconditionvo getBaseConditionVOfOfOfortable () {baseconditionvo vo = new baseconditionvo () ؛ // pagination parameters int currentpage = getParatoint ("page") ؛ أحجام int = getParatoint ("الصفوف") ؛ String sortorder = getPara ("Sord") ؛ String sortcol = getPara ("sidx") ؛ vo.setnumperpage (الأحجام) ؛ vo.setpagenum (pagepage) ؛ vo.setorderfield (sortcol) ؛ vo.setorderDirection (sortorder) ؛ إرجاع فو ؛ } قم بتحويل المعلمات التي تم تمريرها بواسطة JQGrid إلى كائن استعلام PAGECONDITIONVO. void renderxml المحمي (httpservletresponse res ، سلسلة xmlresponse) {try {res.setcharacterencoding ("utf-8") ؛ Res.Setheader ("نوع المحتوى" ، "Text/XML") ؛ printWriter out = res.getWriter () ؛ Out.print (xmlresponse) ؛ if (out! = null) {out.close () ؛ }} catch (ioException e) {logger.error (e.getMessage ()) ؛ logger.error (e.getMessage () ، e) ؛ }}يكتب XML إلى دفق الإخراج.
بعد تحديد هذه الكائنات الأساسية ، سنبدأ في الحصول على البيانات ونقلها.
suppressWarnings ("RawTypes") @requestmapping (value = "datablePayPayDealordersList") public void datapaydealorderslist (httpservletresponse stretling) {try {logger.deBug ("الحصول على الطلب الذي دفعته") ؛ XstreamComponent XstreamComponent = xstreamcomponent.newinstance () ؛ // الحصول على معلمات قائمة baseconditionvo vo = getBaseConditionVOfOfOfortable () ؛ Vo.Addparams ("name" ، getPara ("name")) ؛ logger.debug ("لقد دفعت طلب طلب" + vo) ؛ . العد الطويل = dealorderservice.SearchissuotalCount (VO) ؛ String xmlresponse = xstreamcomponent.topagexml (createPageGrid (myDealorders ، vo ، count.intvalue ())) ؛ renderxml (استجابة ، xmlresponse.replaceall ("__" ، "_")) ؛ } catch (uncategorizedSqlexception e) {logger.error (e.getMessage ()) ؛ logger.error (e.getMessage () ، e) ؛ renderxml (استجابة ، الثوابت. query_error) ؛ } catch (استثناء e) {logger.error (e.getMessage ()) ؛ logger.error (e.getMessage () ، e) ؛ renderxml (استجابة ، constants.server_error) ؛ }}لنشرح بالتفصيل:
1. XStreamComponent.newInstance() ينشئ كائن دفق XML.
2 BaseConditionVO vo = getBaseConditionVOForTable(); إنشاء كائن معلمة استعلام ترقيم الصفحات.
3. vo.addParams("name", getPara("name")); ضع قيمة حقل البحث في كائن الاستعلام.
4. dealOrderService.getByIssueUid(vo, vo.createRowBounds()); طريقة استعلام ترقيم الصفحات في MyBatis بسيطة للغاية. صديق في المجموعة يستخدم لإنشاء مكون ترقيم الأسنان خصيصا من MyBatis. أعتقد أن استخدام طريقة استعلام MyBatis الأصلية أكثر كفاءة. بعد ذلك ، سنكتب طريقة كتابة SQL المقابلة لـ XML في MyBatis.
5. renderXml(response, xmlResponse.replaceAll("__", "_")); اكتب البيانات إلى دفق الإخراج الخارجي لـ JSP.
أخيرًا ، دعونا نقدم كيفية الحصول على بيانات الترحيل من خلال MyBatis.
mappper.java
package com.honzh.biz.database.mapper ؛ استيراد java.math.bigdecimal ؛ استيراد java.util.hashmap ؛ استيراد java.util.list ؛ import org.apache.ibatis.session.rowbounds ؛ استيراد comm.honzh.common.persistence.basecond. suppressWarnings ("RawTypes") قائمة <HashMap> getByissueuid (Baseconditionvo Vo ، Rowbounds createrowbounds) ؛}الكائنان اللذان تريد تمرير Mapper.xml هما BaseconditionVo وترحيل Robounds. سوف SQL في XML ترحيل تلقائيا.
MapPPer.xml
<SELECT ID = "getByissueUID" resultType = "HashMap" parametertype = "map"> select * from daa where is_delete = 0 <test = "mo.name! = null و mo.name! orderfield! = '' '> order by $ {orderfield} <if test = "orderdirection! = null و orderdirection! =' '> $ {orderdirection} </if> </hen> order> order by D.Order_time desc </osh> </select> </select>لا يمكنك أبدًا الانتباه إلى RowBounds ، وسيقوم MyBatis بتغليفك تلقائيًا. يمكن الحصول على اسم مجال البحث مباشرة من خلال mo.name أو. يتم تمرير Orderfield و OrderDirection أيضًا.
حتى الآن ، انتهى bootstrap بأكمله المضمن في JQGrid بنجاح. حسنًا ، اجعل طاولتك رائعًا!