Гобелен: обновите @for по прямой ссылке

У меня есть таблица, созданная с использованием компонента @for. один из столбцов в таблице содержит прямую ссылку, которая вызывает метод и добавляет еще 1 строку в источник таблицы.

Теперь я хочу обновить эту таблицу в пользовательском интерфейсе. это работает нормально, если я обновляю всю страницу. Но когда я использую тег updateComponent в прямой ссылке. Я вижу только 1 строку. Насколько я понимаю, мой componentid находится в строке, поэтому обновляется только одна строка.

Можете ли вы предложить, как я могу просто обновить всю таблицу. Я попытался поставить @for на say tbody, но это не сработало.

Код:

<div id="compFeeTableDiv" jwcid="compFeeTableDivTap@Any" style="visibility: hidden">
    <fieldset>
        <legend>
        </legend>
        <table height="100%" cellSpacing="2" cellPadding="2" width="100%" border="0" id="compFeeTable">
            <thead>
                <tr>
                    <th>
                        <span key="abc" />
                    </th>
                </tr>
            </thead>
            <tbody>
                <tr jwcid="@For" source="ognl:compFees" value="ognl:compFee" element="tr" index="ognl:loopIndex">
                    <td valign="center" align="center" height="15" class="listlabel2">
                        <span jwcid="@If" condition="true">
                            <div jwcid="@Any">
                                <a href="" jwcid="@DirectLink" name="ognl:'edit_link_'" listener="listener:newCompFee" size="5">
                                    <img src="images/addAction.png" alt="addAction">
                                </a>
                            </div>
                        </span>
                    </td>
                </tr>
            </tbody>
        </table>
    </fieldset>
</div>

Поддержка метода слушателя Java

public void newcompFee(IRequestCycle cycle) {
    compFee newcompFee = compFeeFactory.createDefaultcompFee(null,getAgent().getCompany());
    List<compFee> compFees = getcompFees();
    compFees.add(newcompFee);
    setcompFees(compFees);
    getAgent().getCompany().setcompFeeApplicable(YesNo.Yes);
}

Я попробовал атрибут updateComponent в прямой ссылке и указал его на идентификатор моего @for. но это отображает только 1 строку после обновления.

Я использую гобелен 4.1.6.

Пожалуйста, порекомендуйте. Спасибо


person Mukul Goel    schedule 09.11.2015    source источник
comment
<thead> не закрыто   -  person Tushar    schedule 09.11.2015
comment
@Tushar: спасибо, что указали на это. починил это.   -  person Mukul Goel    schedule 09.11.2015
comment
@Тушар. Как оказалось... проблема была не в том, чтобы закрыть ‹thead›. Я закрыл это. и теперь я могу обновить весь div, используя атрибут updateComponent в прямой ссылке. Спасибо. Я опубликую ответ.   -  person Mukul Goel    schedule 09.11.2015


Ответы (1)


Так. Проблема была действительно глупой. это было, как указывает @Tusar в своем комментарии. это было потому, что <thead> не был закрыт.

Что сработало для меня:

<div id="compFeeTableDiv" jwcid="compFeeTableDivTap@Any" style="visibility: hidden">
 <fieldset>
        <legend>
        </legend>
        <table height="100%" cellSpacing="2" cellPadding="2" width="100%" border="0" id="compFeeTable">
            <thead>
                <tr>
                    <th>
                        <span key="abc" />
                    </th>
                </tr>
            </thead>
            <tbody>
                <tr jwcid="@For" source="ognl:compFees" value="ognl:compFee" element="tr" index="ognl:loopIndex">
                    <td valign="center" align="center" height="15" class="listlabel2">
                        <span jwcid="@If" condition="true">
                            <div jwcid="@Any">
                                <a href="" jwcid="@DirectLink" name="ognl:'edit_link_'" listener="listener:newCompFee" size="5" updateComponent="compFeeTableDivTap">
                                    <img src="images/addAction.png" alt="addAction">
                                </a>
                            </div>
                        </span>
                    </td>
                </tr>
            </tbody>
        </table>
    </fieldset>
</div>

Итак, в основном, я вызываю прилагаемый div для updateComponent прямой ссылки. Работает отлично.

ОБНОВЛЕНИЕ После исправления файла . Вся страница обновлялась. Проблема заключалась в том, что в updateComponent была опечатка. это должно быть updateComponents.

Теперь все работает отлично

person Mukul Goel    schedule 10.11.2015