Grails - Обновление списка объектов с помощью флажка? - PullRequest
0 голосов
/ 02 февраля 2012

Итак, я впервые погружаюсь в Грааль и пытаюсь выполнить то, что, по моему мнению, будет легкой задачей, поэтому я надеюсь, что это тривиально. Время, потраченное на это, заставляет меня чувствовать себя иначе:)

Итак, у меня есть список контактов в базе данных, которые связаны с логическим значением isActive. Я хочу иметь флажок в моем списке gsp, который определяет, показывать ли неактивных участников или нет.

Я пытался использовать функцию Javascript (которую я мог успешно вызвать, но не знал, как обработать передачу после вызова). Я также пытался добавить g: if, чтобы проверить, было ли включено свойство флажка, но это приводит к нулевому объекту (что, как я подозревал, может произойти).

Я также пытался подключить вызов remoteFunction по щелчку флажка, но, к сожалению, я так и не получил ответ.

Любой совет? Спасибо, я ценю это. Сложности в обучении веб-языку впервые:)

<html>
    <head>
            <meta name="layout" content="main">
        <g:set var="entityName" value="${message(code: 'contact.label', default: 'Contact')}" />
        <title><g:message code="default.list.label" args="[entityName]" /></title>

    <g:javascript>
        function updateThisPage()
        {

        }
    </g:javascript>

</head>
<body>
    <a href="#list-contact" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content&hellip;"/></a>
    <div class="nav" role="navigation">
        <ul>
            <li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
            <li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
            <li><g:checkBox name="showInactives" value="${false}" onclick="....." /></li>
        </ul>
    </div>
    <div id="list-contact" class="content scaffold-list" role="main">
        <h1><g:message code="default.list.label" args="[entityName]" /></h1>
        <g:if test="${flash.message}">
        <div class="message" role="status">${flash.message}</div>
        </g:if>
        <table>
            <thead>
                <tr>
                <g:if test="${isActive?.checked}">
                    <g:sortableColumn property="firstName" title="${message(code: 'contact.firstName.label', default: 'First Name')}" />

                    <g:sortableColumn property="lastName" title="${message(code: 'contact.lastName.label', default: 'Last Name')}" />

                    <g:sortableColumn property="phone" title="${message(code: 'contact.phone.label', default: 'Phone')}" />

                    <g:sortableColumn property="email" title="${message(code: 'contact.email.label', default: 'Email')}" />

                    <g:sortableColumn property="title" title="${message(code: 'contact.title.label', default: 'Title')}" />

                    <g:sortableColumn property="jobFunc" title="${message(code: 'contact.jobFunc.label', default: 'Job Func')}" />
                </g:if>
                </tr>
            </thead>
            <tbody>
            <g:each in="${contactInstanceList}" status="i" var="contactInstance">
                            <g:if test="${contactInstance.isActive}">
                                <tr class="${(i % 2) == 0 ? 'even' : 'odd'}">

                                    <td><g:link action="show" id="${contactInstance.id}">${fieldValue(bean: contactInstance, field: "firstName")}</g:link></td>

                                    <td>${fieldValue(bean: contactInstance, field: "lastName")}</td>

                                    <td>${fieldValue(bean: contactInstance, field: "phone")}</td>

                                    <td>${fieldValue(bean: contactInstance, field: "email")}</td>

                                    <td>${fieldValue(bean: contactInstance, field: "title")}</td>

                                    <td>${fieldValue(bean: contactInstance, field: "jobFunc")}</td>

                                </tr>
                            </g:if>
            </g:each>
            </tbody>
        </table>
        <div class="pagination">
            <g:paginate total="${contactInstanceTotal}" />
        </div>
    </div>
</body>

1 Ответ

1 голос
/ 03 февраля 2012

Почему бы вам не попробовать комбинацию JQuery и CSS?Например, к каждому имеющемуся полю добавьте класс «Active» или «Inactive» в соответствии с их записью в базе данных.Затем, когда вы нажимаете кнопку, просто добавьте класс «Скрытый» для всех элементов, которые имеют класс «Неактивный».

jQuery("#hideInactiveContact").click(function(){
   jQuery(".Inactive").addClass("Hidden");
});

jQuery("#showInactiveContact").click(function(){
   jQuery(".Inactive").removeClass("Hidden");
});

В CSS вы можете сделать следующее и все элементы «Скрытый»класс будет спрятан:

.Hidden {
display: none;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...