【发布时间】:2014-11-26 10:20:00
【问题描述】:
您好,我有一个从 URL 读取的有效 FilteringSelect。输入名称将查询数据库并返回适当的 JSON 以填充过滤选择,我可以选择一个值并存储 ID。
<div data-dojo-type="ComboBoxReadStore" data-dojo-id="assignedUserIdstore"
data-dojo-props="url:'Welcome.do?call=JS&actionRefId=142',
requestMethod:'get'"></div>
<input id='assignedUserId' name='value(assignedUserId)'
data-dojo-type='dijit.form.FilteringSelect'
data-dojo-props="store:assignedUserIdstore, pageSize:5, labelAttr:
'label',queryExpr: '*${0}*', autoComplete: false" />
问题在于设置默认值。我有这个
<script type='text/javascript'>dojo.ready(function(
{dijit.byId('assignedUserId').setValue('25');});
</script>
这似乎在某种程度上起作用 - 它确实调用了服务器并且服务器返回了这个
{ "id":"25", "name":"John Smith" "label":"John Smith"}
但是,它没有实际填充过滤选择,既没有显示也没有输入的实际值。我尝试将值设置为名称,但这也没有效果。让它返回一个集合而不是单个项目也无济于事。
comboreadstore 定义为
<script type="text/javascript">
require([
"dojo/_base/declare",
"dojox/data/QueryReadStore",
"dojo/parser",
"dijit/form/FilteringSelect"],
function(declare, QueryReadStore){
declare("ComboBoxReadStore", QueryReadStore, {
fetch:function(request) {
// This results in a xhr request to the following URL (in case of GET):
// /url.php?q=<searchString>
request.serverQuery = {q:request.query.name};
return this.inherited("fetch", arguments);
}
});
}
);
</script>
【问题讨论】:
标签: url dojo default-value