【发布时间】:2014-04-29 21:39:07
【问题描述】:
我有一个视图,我可以在 2 个 ListGrid-s 之间进行拖放操作,然后在拖动几条记录后,单击“保存”按钮将它们保存到 POJO 类型的对象中。
当我再次访问该视图时,它会调用一个方法 loadGrid 从 POJO 中提取这些值并将它们添加回它们之前被拖到的 ListGrid,以便他们可以看到他们已经添加的内容以前,但是当我再次拖放时,它允许我添加相同的主键,在 ListGrid 中创建重复记录。
我怎样才能让它看到这些记录是一样的?主键一样,类型一样,不知道会是什么...
我正在使用transferSelectedData 将新权限添加到分配的列表网格和setPreventDuplicates(true)。
ListGrid avPrivGrid = null;
ListGrid assPriv = null;
TransferImgButton but = null;
avPrivGrid = new ListGrid();
PrivilegesDataSource privDataSource = new PrivilegesDataSource();
avPrivGrid.setDataSource(privDataSource);
avPrivGrid.setAutoFetchData(false);
ListGridField propUsername = new ListGridField("privName", "Available Priv");
propUsername.setType(ListGridFieldType.TEXT);
avPrivGrid.setFields(propUsername);
assPriv = new ListGrid();
assPriv.setCanAcceptDroppedRecords(true);
assPriv.setCanEdit(false);
assPriv.setAutoFetchData(false);
assPriv.setPreventDuplicates(true);
assPriv.setDuplicateDragMessage("Can not add duplicates!");
assPriv.setCanSelectAll(false);
assPriv.setAlternateRecordStyles(true);
assPriv.setLeaveScrollbarGap(true);
assPriv.setMinHeight(100);
ListGridField propUserN = new ListGridField("privName", "Assigned Priv");
propUserN.setWidth("30%");
propUserN.setType(ListGridFieldType.TEXT);
ListGridField propId = new ListGridField("privId");
propId.setWidth("30%");
propId.setType(ListGridFieldType.TEXT);
propId.setHidden(true);
assPriv.setFields(propId, propUserN);
but = new TransferImgButton(TransferImgButton.RIGHT);
but.addClickHandler(new ClickHandler()
{
public void onClick(ClickEvent event)
{
//Duplicate checking will happen automagially!
assPriv.transferSelectedData(avPrivGrid);
}
});
avPrivGrid.fetchData();
【问题讨论】:
标签: smartgwt