3

我有 FilteringSelect 和 dojox.data.QueryReadStore 作为存储。当我在选择过滤下拉菜单上重置时,它会击中服务器。dijit.byId("enquirerOrInstitution").reset();. 这背后的原因是什么,我们如何才能阻止它?我必须使用 FilteringSelect 而不是 ComboBox。代码如下:

<td>
<div id="accountList" dojoType="dojox.data.QueryReadStore" jsId="accountListStore" 
                    url="<%=contextPath %>/<%=servlet%>?cmd_search_gcs_account_list=1"></div>
            <select id="gcsAccountNumber" name="gcsAccountNumber" dojoType="dijit.form.FilteringSelect"
                style="width: 250px" searchAttr="accountNumber" autoComplete="false" pageSize="10" store="accountListStore"> 
</select>
</td>

并在 JS 某处重置dijit.byId("gcsAccountNumber").reset();

在这个动作中,我看到了对服务器的调用。

4

1 回答 1

0

这将是一个简单的出路:

dijit.byId('gcsAccountNumber').removeOption(
       dijit.byId('gcsAccountNumber').getOptions()
);

测试它是否确实向您的服务器发送请求。

如果是这样,删除 DOM 元素的内部子级的例程应该会给出一个公平的结果。不必担心 dijit 上挂着关系,因为一旦您更新其内容,它就会重置。真实内存保存在您的商店中(也尝试通过.reset()调用重置)

while (node.firstChild) node.removeChild(node.firstChild);
于 2013-10-21T10:47:28.320 回答