1

現在の問題: 現在、データベースから 50 万 (50 万) を超えるレコードをフェッチしようとしていますが、JSP でページごとに 50 レコードを表示する必要があります (struts 2 を使用)。問題は、ロードに長い時間がかかるか、ロードに時間がかかることです。ロードされると、スムーズにナビゲートできます。

必要な解決策: ページネーションで定義されたレコードに従って制限されたレコードをロードするのが好きです。たとえば、各ページに最大 100 レコードまでです。また、一度にすべてのレコードを取得したくありません。実装方法を教えてください。

4

2 に答える 2

0

いくつかのパラメーターに基づいて、各リクエストで 100 レコードしか取得できません。一度にすべてのレコードを取得するには時間がかかります。クエリといくつかのパラメーターを使用してページネーションを実装しました。

于 2012-04-25T12:10:51.543 に答える
0

jqueryデータテーブルを使用できます。ajax ロード用のページネーション機能を備えています。次のページをクリックすると、データベースから次のレコードがロードされます。このためには、、、、、のような Jquery ライブラリを追加する必要 がありjquery.dataTables.min.jsます。jquery-ui-1.8.10.custom.min.jsjquery-1.4.4.min.jsjquery-1.4.2.min.jsjquery-ui-1.8.10.custom.css

JSP コード

<table id="reqAllQueriesTable" cellpadding="0" cellspacing="0" border="0" class="display" style="width: 100%;">
    <thead>
    <tr>
    <th style="display: none"></th>
    <th>&nbsp;</th>
    <th><spring:message code='Name'/></th>
    <th><spring:message code='runDate'/></th>
    th><spring:message code='noOfRec'/></th>
    </tr>
    </thead>
    <tbody>
    </tbody>
</table>

JavaScript

var oTable = $('#reqAllQueriesTable')
                .dataTable(
                        {
                            "bProcessing": true,
                            "bServerSide": true,
                            "sAjaxSource": "query/getQuery",
                            "bPaginate" : true,
                            "bScrollCollapse" : true,
                            "iDisplayLength" : 10,
                            "bFilter" : true,
                            "bJQueryUI" : true,
                            "sPaginationType" : "full_numbers",
                            "oLanguage" : {
                                "sLengthMenu" : "Display _MENU_ records per page",
                                "sZeroRecords" : "No  Queries found",
                                "sInfo" : "Showing _START_ to _END_ of _TOTAL_ records",
                                "sInfoEmpty" : "Showing 0 to 0 of 0 records",
                                "sInfoFiltered" : "(filtered from _MAX_ total records)"
                            },
                            "aaSorting" : [ [ 3, "desc" ] ],
                            "aoColumns" : [/*Id*/{
                                "bSearchable" : false,
                                "bVisible" : false
                            },
                            /*Id RadioButton*/{
                                "bSearchable" : false,
                                "bSortable" : false
                            },
                            /*Name*/null,
                            /*Run Date*/{
                                "sType" : "date"
                            },                          
                            {
                                "fnRender" : function(oObj) {

                                return '<input type="radio"  name="Id" value= "' + oObj.aData[0] + " "/>';
                                },
                                "aTargets" : [ 1 ]
                            }]
                        });
于 2012-05-30T06:20:26.240 に答える