【问题标题】:How do i select a record in a grouped smartgwt listgrid?如何在分组的 smartgwt listgrid 中选择记录?
【发布时间】:2013-07-26 20:34:18
【问题描述】:

我有一个带有 listgrid 的站点和一个带有点的 openlayers 地图。当我点击其中一个时,应用程序将滚动并标记此记录。这适用于标准列表网格,但对于分组列表网格则不起作用。

lg = new ListGrid();
lg.setWidth(330);
lg.setDataSource(ds1);
lg.setAutoFetchData(true);
lg.setSortField("KU_NAME");
lg.setGroupStartOpen(GroupStartOpen.ALL);
lg.setGroupByField("KU_NAME");
lg.setShowFilterEditor(true);

kuName = new ListGridField("KU_NAME", "Künstler Name",150);

// Standorte
ListGridField stdOrt = new ListGridField("STDORT_NR","Standort Nr.");
ListGridField oid = new ListGridField("OID","OID.");
lg.setFields(stdOrt,kuName,oid);

然后选择:

String stdortOID = stdOrtOIDjso.toString();
ListGridRecord[] records = lg.getRecords();
    int i;
    for (i = 0; i < records.length; i++) {
        if (records[i].getAttribute("OID").equalsIgnoreCase(stdortOID)){
            break;
    }
}
lg.deselectAllRecords();
lg.selectRecord(i);
lg.scrollToRow(lg.getRecordIndex(record));

原因是记录中只有组名的值,其他属性不可用。

【问题讨论】:

  • 取消分组/分组有效,但 scrollToRow 滚动错误的行..

标签: smartgwt listgrid


【解决方案1】:

启用分组后,所有数据都“转换”为树,而 listgrid 本身包含组数据,因此您必须在此树中查找您的记录。将最后 3 行替换为(修改后的)Vittorio Paternostro 建议:

Tree tree = lg.getGroupTree();
if (tree != null) {
    TreeNode node = tree.find("OID", stdortOID);
    if (node != null) {
        lg.selectSingleRecord(node);
        lg.scrollToRow(getRecordIndex(node));
        lg.markForRedraw();
    }
}

注意:不要使用deselectAllRecords + selectRecord 使用简化的selectSingleRecord

【讨论】:

    【解决方案2】:

    我有同样的需求,以下对我来说很好。您可以使用 getGroupTree() 并在其中搜索所需的属性(列值),而无需担心分组。确保搜索唯一值(即唯一键)以识别精确节点。

        Tree tree = getGroupTree();
        if (tree != null) {
            TreeNode node = tree.find("property", "value");
            if (node != null) {
                selectSingleRecord(node);
                scrollToRow(getRecordIndex(node));
                markForRedraw();
            }
        }
    

    【讨论】:

    • 请解释您的解决方案,纯代码答案并不是很好的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多