2017-01-04 1 views
0

Я работаю над таблицей в gsp, которую я хочу динамически загружать по значению флажка. Мне нужно, если флажок снят, а таблица отобразит следующие поля:Как загрузить таблицу динамически по значению флажка в gsp

Name age country status 
Tom 35 USA  Confirm 
Nick 30 USA  ready 
Alex 25 Canada Inprogress 
Johny 20 UK  Waiting 

и если флажок установлен он будет показывать все поля

Name age country status 
Tom 35 USA  Confirm 
Nick 30 USA  ready 
Alex 25 Canada Inprogress 
Johny 20 UK  Waiting 
Dipu 22 USA 
Jack 22 UK 

Я использую следующий код

<g:each in="${domainInstanceList}" status="i" var="domainInstance"> 
       <% 

        //color = "#ff4d4d" 
        color = "#FF6868" 
        def name = domainInstance?.name 
        def age= domainInstance?.age 
        def country= domainInstance?.country 

        if (domainInstance.isConfirm) { 
         //color = "#b3ccff" 
         color = "#56B9CC" 
         status = "Confirmed" 
        } 
        if(domainInstance.isReady){ 
          status = "Ready" 
        }else if(domainInstance.inProgress){ 
         status = "Inprogress" 
        }else if(domainInstance.iswaiting ){ 
         status = "Waiting" 
        } 


       %> 

       <tr style="background-color:${color}" class="${(i % 2) == 0 ? 'even' : 'odd'}"> 
         <td><b><g:link action="show" id="${domainInstance?.id}">${domainInstance?.prefix}${domainInstance?.number}</g:link></td></b></td> 

         <td>${name} 
         <td>${age} 
         <td>${country} 
         <td>${status} 

       </tr>    
      </g:each> 

Могу ли я использовать jquery в нем ... как? Пожалуйста, помогите мне
благодаря

+0

использование jquery например. добавьте класс ('nostatus') в tr, если нет статуса, и добавьте прослушиватель событий в этот флажок, чтобы скрыть класс «nostatus» – dynamo

+0

, почему бы вам не использовать статус как фактический статус, а не все эти логические. чередующийся над флажком, появляется jquery, чтобы сформировать, и на этот раз удаляет те, которые не нужны из результатов - но tbh - все выглядит так беспорядочно - вы можете проходить через 'domainInstanceList' в контроллере и добавлять необходимые значения. Глядя на это лично, я не думаю, что ему нужен дополнительный вход - дополнительный здравый смысл или лучшие способы - https://github.com/vahidhedayati/grails-queuemail-plugin/blob/e35e382ce17c931e4ef08ac356102ca5ad1e590b/grails-app/domain/org/ grails/plugin/queuemail/Email.groovy # L36 – Vahid

+0

https://github.com/vahidhedayati/grails-queuemail-plugin/blob/e35e382ce17c931e4ef08ac356102ca5ad1e590b/src/main/groovy/org/grails/plugin/queuemail/enums/MessageStatus. groovy следуйте его здесь и здесь https://github.com/vahidhedayati/grails-queuemail-plugin/blob/e35e382ce17c931e4ef08ac356102ca5ad1e590b/grails-app/views/queueMail/_list.gsp#L115 и фактический английский перевод https: // github. com/vahidhedayati/grails-queuemail-plugin/blob/master/grails-app/i18n/messages.properties # L127-L135 - теперь вам показали лучшие способы, нет оправдания – Vahid

ответ

0

Нет JQuery не ответить здесь, но, возможно, упрощать ... нет необходимости имени, возраст, страна местного Варса. Если вы массируете экземпляры домена для получения представления, я предпочитаю выполнять работу в контроллере и оставляя gsp максимально простым, например, создание списка персональных данных [id, linkText, name, age, country, статус, цвет] для каждого экземпляра домена и передать его в gsp.

<g:each in="${personStatuses}" status="i" var="ps"> 
    <tr style="background-color:${ps.status}" class="${(i % 2) == 0 ? 'even' : 'odd'}"> 
    <td> 
     <b><g:link action="show" id="${ps.id}">${ps.linkText}</g:link></b> 
    </td> 
    <td>${ps.name}</td> 
    <td>${ps.age}</td> 
    <td>${ps.country}</td> 
    <td>${ps.status} 
    </tr>    
</g:each> 
Смежные вопросы