Dorado 5 : 7.2.动态参数设定 (RF1)

Dataset加载数据时会自动的根据pageSize, pageIndex以及parameters()中的参数决定最终查询的数据。通常情况下这些信息都是可以动态改变的。
一般来说对于数据坞中的dataset的动态处理建议在其listener中实现:

public class HR_datasetDegreeListener
extends AbstractDatasetListener {
public boolean beforeLoadData(Dataset dataset)
throws Exception {
dataset.setPageIndex(2);
dataset.setPageSize(10);
dataset.parameters().setString("type", "degree");
return true;
}

}

另外也可以在客户端动态设定dataset的属性,例如:
DatasetReference:可以在视图模型配置文件或页面运行期间通过JS脚本设定这些参数
视图模型配置

<Dataset id="dsEmployee" type="Reference" sourceModule="sample.HR" sourceDataset="dsEmployee" pageSize="5" autoLoadPage="false">
<MasterLink />
<Fields>...</Fields>
<Parameters>
<Parameter name="branch_id" value="D2" />
</Parameters>
<Properties />
</Dataset>

Js动态修改

dsEmployee.setPageSize(10);
dsEmployee.setPageIndex(5);
dsEmployee.parameters().setValue("branch_id","D1");
dsEmployee.flushData();

数据坞sample.HR中被引用的dataset就会根据新设定的pageSize,pageIndex以及parameters()作查询处理。
LookupField使用方式由于其运行机制动态设定pageSize,pageIndex是没有意义的,并且parameters()属性是由LookupField定义时其lookupKeyFields与keyFields属性决定。运行期间由系统自动决定其参数的处理方式,不支持编程实现动态设定。
DynamicDropDown引用的dataset由于不能在客户端直接访问,而无法动态的设定pageIndex, pageSize属性。但是允许通过设定dropdown的parameters()属性实现向所引用数据坞中dataset的parameters()传值的处理。

dropdown.setCachable(false);
dropdown.parameters().setValue("branch_id","D1");
dropdown.open();