0

コードに2つのセクションスタックセクションがあり、onwは入力データの動的フォームを表示し、2番目のセクションスタックセクションは動的フォームセクションで保存ボタンを押すと入力データを表示するリストグリッドを表示しています。

3 つのクラスを作成しました。1 つは Dynamic Form を拡張する EmployeeApplicationForm、2 番目は listgrid を拡張する EquiryList、3 番目は getter と setter の ListGridRecord を拡張する EnquiryFormRecord です。

テキストボックスのデータを取得し、EnquiryFormRecord コンストラクターを呼び出して、「データ」変数のデータを取得および設定しました。しかし、この「データ」変数を EnquiryList クラスにアクセスして、listGird フィールドの「setData(data)」にアクセスできません。

私のコードはこれです。この問題を解決するためのアイデアを共有してください EmployeeApplicationClass And EnquiryList:

class EmployeeApplicationForm extends DynamicForm {
ButtonItem saveButton;
ButtonItem resetButton;
EnquiryFormRecord[] data;
public EmployeeApplicationForm() {
    setNumCols(6);
    setWidth100();
    setHeight(135);
    setErrorOrientation(FormErrorOrientation.RIGHT);

    final TextItem fname = new TextItem("FirstName");

    final TextItem lname = new TextItem("LastName");

    saveButton = new ButtonItem("Save");
    saveButton.setStartRow(true);
    saveButton.setEndRow(false);
    resetButton = new ButtonItem("Reset");
    resetButton.setStartRow(false);
    resetButton.setEndRow(false);

    saveButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub
            // if validation passes then show user an alert message box
            if (valid()) {
                SC.say("Form passed validation");
            }
            String fn = fname.getValueAsString();
            String ln = lname.getValueAsString();

            data = new EnquiryFormRecord[] { new EnquiryFormRecord(fn, ln) };
        }
    });

    resetButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub
            resetForm();
        }
    });
    setFields(fname, lname, saveButton, resetButton);
}

private boolean valid() {
    return this.validate();
}

private void resetForm() {
    this.reset();
}
}


class EnquiryList extends ListGrid {
public EnquiryList(EnquiryFormRecord[] data) {
    ListGridField fname = new ListGridField("fname","First Name");
    ListGridField lname = new ListGridField("lname","Last Name");

    setFields(fname, lname);
    setData(data);------/*Hera I am getting error. I cannot access the EmployeeAppliocationForm class "data" variable here*/
    setCanEdit(true);
    setShowAllRecords(true);
    // setSortField(0);
    setAlternateRecordStyles(true);
    setCanDragRecordsOut(true);
    setHoverWidth(200);
    setHoverHeight(20);
    setSelectionType(SelectionStyle.SINGLE);
}
}
4

2 に答える 2