【问题标题】:ListGrid Duplicates created after adding records onload then dragging the same againListGrid Duplicates 创建后添加记录 onload 然后再次拖动相同
【发布时间】: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


    【解决方案1】:

    检查ID字段是否设置为Datasource中的主键。

    [IdField].setPrimaryKey(true);
    

    【讨论】:

      【解决方案2】:

      我有同样的问题,我有 [IdField].setPrimaryKey(true); 到这里为止,我的结论是只要有数据绑定的记录列表,setDragDataAction(DragDataAction.MOVE) 就不起作用。如果它不是数据绑定的,它可以工作。

      【讨论】:

      • 我有同样的问题!有什么建议吗?
      猜你喜欢
      • 2019-10-30
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      相关资源
      最近更新 更多