智能Gwt列表网格:如何检查所选记录

智能Gwt列表网格:如何检查所选记录,gwt,smartgwt,Gwt,Smartgwt,我正在使用SmartGWT2.5列表网格。 在这里,我使用复选框进行简单选择。下面是代码: getGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX); getGrid().setSelectionType(SelectionStyle.SIMPLE); 我正在使用列表网格的数据源。要调用此方法传送数据,请执行以下操作: public void setTestData(DataClass[] testD

我正在使用SmartGWT2.5列表网格。 在这里,我使用复选框进行简单选择。下面是代码:

    getGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX);
        getGrid().setSelectionType(SelectionStyle.SIMPLE);
我正在使用列表网格的数据源。要调用此方法传送数据,请执行以下操作:

 public void setTestData(DataClass[] testData) {
    setAttribute("testData", testData, true);
}
我的网格正在正确地呈现数据。现在我想根据某些条件设置一些已检查的记录(行)。假设我想检查第1行和第5行

为此,在将数据馈送到数据源后,我编写如下代码来检查数据:

    getGrid().selectRecord(1);` 
    getGrid().selectRecord(5);
但并没有对复选框进行任何选中操作。我不知道我在什么地方犯了错误。 当我尝试使用数据源时也是这样,我通过setdata将数据输入到列表网格,它正在工作。
请帮助我。请提前感谢

当您使用数据源(包括clientOnly数据源)时,获取数据是异步的,因此您的selectRecord()调用在数据尚未加载时发生。在尝试选择记录之前,请等待数据到达。

当您使用数据源(包括clientOnly数据源)时,获取数据是异步的,因此您的selectRecord()调用在数据尚未加载时发生。等待数据到达,然后再尝试选择记录。

一个对我有效的方法是: 我从网格中删除了“选择外观”和“选择类型”,并选中了一列作为复选框 如下图所示:

    NTListGridField customCheckBoxField = new NTListGridField("select", "Select", 25);
        customCheckBoxField.setAlign(Alignment.LEFT);
        customCheckBoxField.setType(ListGridFieldType.BOOLEAN);
        customCheckBoxField.setCanFilter(false);
        customCheckBoxField.setCanEdit(true);
        customCheckBoxField.setCanToggle(true);
现在选择记录

record.setAttribute("select", true);

我的一项工作是: 我从网格中删除了“选择外观”和“选择类型”,并选中了一列作为复选框 如下图所示:

    NTListGridField customCheckBoxField = new NTListGridField("select", "Select", 25);
        customCheckBoxField.setAlign(Alignment.LEFT);
        customCheckBoxField.setType(ListGridFieldType.BOOLEAN);
        customCheckBoxField.setCanFilter(false);
        customCheckBoxField.setCanEdit(true);
        customCheckBoxField.setCanToggle(true);
现在选择记录

record.setAttribute("select", true);

任何其他选择记录的方法也不起作用。任何其他选择记录的方法也不起作用。网格数据已加载。之后,我测试我的条件以检查记录。数据可能会加载到浏览器中,并显示在clientOnly数据源中,但是网格从clientOnly数据源获取数据的操作仍然是异步的,即使数据存在于浏览器中。您不需要解决方法,只需要使用DataArrived等待加载数据。grid的数据已经加载。之后,我测试我的条件以检查记录。数据可以加载到浏览器中并显示在clientOnly数据源中,但网格从clientOnly数据源获取的操作仍然是异步的,即使数据存在于浏览器中。您不需要解决方法,只需要使用DataArrived等待数据加载。这不是必要的解决方法,也不会纠正上述问题;最有可能的是,此解决方案与其他代码更改同时尝试,这实际上解决了问题。这不是必要的解决方案,也不会纠正上述问题;最有可能的是,此解决方案与其他代码更改同时尝试,这实际上解决了问题。