2

我有一个表格视图,其中几列是可编辑的,少数是不可编辑的。当我在第一列中键入一些值并按 tab 时,将调用一个服务并将返回的对象映射到表行。我的要求是根据返回对象中的标志将不可编辑的列设为可编辑(仅在我已编辑的行中)。下面是调用服务并将返回对象设置为行的代码。

colCtrNo.setOnEditCommit(new EventHandler<CellEditEvent<CtrRcptDlvryDTO, String>>() {
        @Override
        public void handle(CellEditEvent<CtrRcptDlvryDTO, String> t) {
            CtrRcptDlvryDTO c = t.getTableView().getSelectionModel().getSelectedItem();
            if(c.getCtrNo() != null && !"".equals(c.getCtrNo())){

            c = GateIn.gatePassServiceRef.gateIn_validateRcptCtrFx(c, 1, 5090,null);  
            tblReceiptContent.set(t.getTablePosition().getRow(), c);
            }
        }
    }); 

请建议如何在运行时根据标志将不可编辑的列转换为可编辑的。

4

1 回答 1

1

尝试这个...

 Col.setCellValueFactory(
        new PropertyValueFactory<User, String>("Name"));
    Col.setCellFactory(TextFieldTableCell.forTableColumn());
    Col.setOnEditCommit(
        new EventHandler<CellEditEvent<User, String>>() {
            @Override
            public void handle(CellEditEvent<User, String> t) {
                ((User) t.getTableView().getItems().get(
                        t.getTablePosition().getRow())
                        ).setName(t.getNewValue());
            }
        }
    );
于 2013-11-08T12:16:00.990 回答