Гоблен: актуализирайте @for на directLink

Имам таблица, генерирана с помощта на @for компонент. една от колоните в таблицата съдържа директна връзка, която извиква метод и добавя още 1 ред към източника на таблицата.

Сега това, което искам да направя, е да опресня тази таблица в потребителския интерфейс. работи добре, ако обновя цялата страница. Но когато използвам етикета updateComponent на директната връзка. Виждам само 1 ред. Разбирам, че моят компонентid е на ред, поради което само един ред се актуализира.

Можете ли да предложите как мога просто да актуализирам цялата таблица. Опитах се да поставя @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="/bg" 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 на директна връзка и го насочих към id на моя @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="/bg" 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 на directlink. Работи перфектно.

АКТУАЛИЗАЦИЯ След коригиране на . Цялата страница се опресняваше. Проблемът тук беше, че имаше печатна грешка в updateComponent. това трябва да е updateComponents.

Сега всичко работи перфектно

person Mukul Goel    schedule 10.11.2015