0

GroovyonGrailsサイトのリストにnext/prevオプションが表示されないという問題があります。自動生成されたコントローラーコードを変更して、リスト内のアイテムをユーザーが作成したアイテムに制限しました。これは正常に機能しますが、ユーザーが10を超えるアイテムを持っている場合、[次へ]/[前へ]ボタンが期待どおりに表示されません。以下は、関連するコードの断片です...

コントローラ:

def list = {
   params.max = Math.min(params.max ? params.int('max') : 10, 100)
   def login = authenticationService.getSessionUser().getLogin()
   def authUser = AuthenticationUser.findByLogin(login)
   def userAcct = User.findByLoginID(authUser)
   def userServices = Service.createCriteria()
   def results
   if (userAcct.role == 'admin') {
      results = userServices.list(params) {}
   } else {
      results = userServices.list(params) {
         eq("userID", userAcct)
      }
   }
   [serviceInstanceList: results, serviceInstanceTotal: results.count()]
}

GSP:

        <div class="paginateButtons">
            <g:paginate total="${serviceInstanceTotal}" />
        </div>

「管理者」の役割を持つアカウントでログインすると、次へ/前へのリンクは正常に表示されます。リストするアイテムが10を超える場合、管理者以外のアカウントでは次へ/前へのリンクが表示されません。間違っているの?

4

1 に答える 1

2

あなたの基準はあなたにtotalCountを持つpagedResultListを与えるべきです。したがって、コントローラーの最後の行を次のように変更してみてください。

[serviceInstanceList: results, serviceInstanceTotal: results.totalCount]
于 2011-08-09T19:13:39.103 に答える