2

我在这里遇到了 p:ajax 更新的小问题。关闭 p:panel 或选中复选框或添加答案后,我正在 ajax-updating ans-data-grid 正如您在代码中看到的那样。但它仅适用于添加答案按钮。当我关闭面板或单击 p:datagrid 的复选框内容时消失。它仍然存在,但不可见,整个数据网格的高度为 0px。所以我的问题是,从 p:commandButton 和 p:ajax 更新之间是否有区别,如果是,我该如何正确更新这个数据网格?

<p:panel id="edit_ans_panel" styleClass="edit-ans-panel"  visible="#{editorBean.question.qtype != 2}">
                        <p:dataGrid rowIndexVar="rowIndex" var="answer" value="#{editorBean.question.answers}" columns="1" id="ans_data_grid">
                            <p:panel  header="Answer" styleClass="QApanel" closable="#{editorBean.closableAns}" toggleable="true">
                                <p:ajax event="close" update="ans_data_grid" listener="#{editorBean.onAnswerRemoved(answer)}" />
                                <p:panelGrid columnClasses="anscol1,anscol2,anscol3" columns="3" layout="grid" styleClass="QAgrid">
                                    <p:inputTextarea placeholder="enclose LaTeX expression in $ to be processed" id="editor_input_#{answer.id_answer}" styleClass="editor-input" minQueryLength="2" value="#{answer.text}" />
                                    <h:outputText id="editor_output_#{answer.id_answer}" styleClass="editor-output" value="#{answer.text}"/>
                                    <p:column>
                                        <p:panel id="edit_ans_corr_chkbx" styleClass="edit-ans-corr-chkbx" visible="#{editorBean.question.qtype != 3}">
                                            <h:outputText value="Correct: " />
                                            <p:selectBooleanCheckbox id="is_true_#{answer.id_answer}" value="#{answer.is_true}" >
                                                <p:ajax update="ans_data_grid" listener="#{editorBean.ansChecked(answer)}" />
                                            </p:selectBooleanCheckbox>
                                        </p:panel>
                                    </p:column>
                                </p:panelGrid>
                            </p:panel>
                        </p:dataGrid>
                        <p:commandButton id="add_ans_btn" value="Add Answer" styleClass="add-ans-btn" action="#{editorBean.addAnswer()}" update="ans_data_grid"/>
                    </p:panel>

\edit 出于某种原因,带有 .QApanel 类的 p:panel 在更新后获取 .ui-helper-hidden 类,其中显示:无。

4

0 回答 0