我有问题过滤基于选择另一个CB的CB。我做错了什么/错过了什么?请帮帮忙。我有第一个CB,它得到银行名称,这个CB根据先前CB的选择,即银行,获得银行分支机构。现在,当用户选择银行名称时,我要过滤第二个CB,即银行分行,仅显示该银行的相关分支。
我有这个BankDS.ds.xml,第一个CB用来填充银行CB,我有第二个BankBranchDS.ds.xml(代码如下所示),它填充了银行支行CB。
我正在使用这个版本的SmartClient版本: v8.3p_2014-04- 23 /PowerEdition部署(构建于2014-04-23),并在火狐浏览器版本23上进行测试。
这是我的DSRequest输出
{
dataSource:"BankBranchDS",
operationType:"fetch",
componentId:"isc_PickListMenu_10",
data:{
fieldName:"bankid",
operator:"equals",
value:1
},
startRow:0,
endRow:75,
textMatchStyle:"startsWith",
resultSet:[ResultSet ID:isc_ResultSet_11 (created by: isc_PickListMenu_10)],
callback:{
caller:[ResultSet ID:isc_ResultSet_11 (created by: isc_PickListMenu_10)],
methodName:"fetchRemoteDataReply"
},
willHandleError:true,
showPrompt:false,
prompt:"Finding Records that match your criteria...",
oldValues:{
fieldName:"bankid",
operator:"equals",
value:1
},
requestId:"BankBranchDS$62712",
internalClientContext:{
requestIndex:{
Class:"Number",
formatter:"toString",
localeStringFormatter:"toString",
localeProperties:Obj
}
},
fallbackToEval:false,
bypassCache:true
}
这是我的响应输出
[
{
data:[
{
bankid:1,
id:1,
perName:"",
bank:{
id:1,
createdBy:1,
created:null,
perName:"",
lastUpdated:null,
engName:"M Bank",
updatedBy:null
},
code:"11001"
},
{
bankid:1,
id:2,
perName:"",
bank:{
id:1,
createdBy:1,
created:null,
perName:"",
lastUpdated:null,
engName:"M Bank",
updatedBy:null
},
code:"2333"
},
{
bankid:1,
id:3,
perName:"",
bank:{
id:1,
createdBy:1,
created:null,
perName:"",
lastUpdated:null,
engName:"M Bank",
updatedBy:null
},
code:"47"
},
{
bankid:2,
id:4,
perName:"",
bank:{
id:2,
createdBy:1,
created:new Date(1405327425220),
perName:"",
lastUpdated:null,
engName:"S Mank",
updatedBy:null
},
code:"474747"
}
],
endRow:4,
invalidateCache:false,
isDSResponse:true,
operationType:"fetch",
queueStatus:0,
startRow:0,
status:0,
totalRows:4
}
]
这是我的ComboxItem代码
bankBranchName = new CustomComboBoxItem()
{
protected Criteria getPickListFilterCriteria()
{
Integer bankid = (Integer) bankName.getValue();
AdvancedCriteria criteria = new AdvancedCriteria("bankid", OperatorId.EQUALS, bankid);
return criteria;
}
};
我的BankDS.ds.xml看起来像这样
<DataSource ID="BankDS" serverType="sql" tableName="Bank">
<fields>
<field name="id" title="Id" type="int" primaryKey="true" />
<field name="engName" title="Name" type="string" />
<field name="perName" title="Persian Name" type="string" />
</fields>
<operationBindings>
<binding operationType="add" serverMethod="add">
<serverObject lookupStyle="new"
className="com.kaizen.erp.server.bussinessLogic.master.BankBussinessLogic" />
</binding>
<binding operationType="update" serverMethod="add">
<serverObject lookupStyle="new"
className="com.kaizen.erp.server.bussinessLogic.master.BankBussinessLogic" />
</binding>
<binding operationType="remove" serverMethod="delete">
<serverObject lookupStyle="new"
className="com.kaizen.erp.server.bussinessLogic.master.BankBussinessLogic" />
</binding>
<binding operationType="fetch" serverMethod="fetch">
<serverObject lookupStyle="new"
className="com.kaizen.erp.server.bussinessLogic.master.BankBussinessLogic" />
</binding>
</operationBindings>
这是我的BankBranchDS.DS.XML代码
<DataSource ID="BankBranchDS" serverType="sql" tableName="BankBranch">
<fields>
<field name="id" title="Id" type="int" primaryKey="true" />
<field name="code" title="Code" type="string" />
<field name="perName" title="Persian Name" type="string" />
<field name="bankid" type="text" hidden="true" valueXPath="bank/id" />
<field name="bank" displayField="bank" foreignKey="bank.id" />
</fields>
<operationBindings>
<binding operationType="add" serverMethod="add">
<serverObject lookupStyle="new"
className="com.erp.server.bussinessLogic.master.BankBranchBussinessLogic" />
</binding>
<binding operationType="update" serverMethod="add">
<serverObject lookupStyle="new"
className="com.erp.server.bussinessLogic.master.BankBranchBussinessLogic" />
</binding>
<binding operationType="remove" serverMethod="delete">
<serverObject lookupStyle="new"
className="com.erp.server.bussinessLogic.master.BankBranchBussinessLogic" />
</binding>
<binding operationType="fetch" serverMethod="fetch">
<serverObject lookupStyle="new"
className="com.erp.server.bussinessLogic.master.BankBranchBussinessLogic" />
</binding>
</operationBindings>
发布于 2014-08-02 13:20:35
选择银行后,尝试清除银行分行名称ComboBoxItem
的值。
请参阅如何覆盖名为“依赖选择(数据库)”的getPickListFilterCriteria()的示例。这与你想要做的事情非常相似:
https://stackoverflow.com/questions/25093371
复制相似问题