dojo combobox源的动态url

Dynamic url for dojo combobox source

本文关键字:动态 url combobox dojo      更新时间:2023-09-26

我正在尝试使用一个带有Ajax数据源的dojo组合框。我有

<div dojoType="dojo.data.ItemFileReadStore" 
     jsId="tags" 
     url="<%=ResolveClientUrl("~/Tag/TagMatches")%>" >
</div>
<select dojoType="dijit.form.ComboBox" 
        store="tags" 
        value="" 
        name="tagName">
</select>

这确实有效,只是我不能限制服务器端的搜索集,因为我不知道如何更改从中提取数据的url以指定参数。有什么提示吗?

如果我理解正确,您希望客户端根据其他地方定义的一些通用条件从服务器加载不同的数据集。

基本上不需要预先定义<div>。您也可以直接在JavaScript:中创建ItemFileReadStore

早期…:

var tagMatchUrlBase = '<%=ResolveClientUrl("~/Tag/TagMatches")%>';

稍后…:

var tagMatchUrl = tagMatchUrlBase + "?f=" + escape(somefilterString);
var store = new dojo.data.ItemFileReadStore({url: tagMatchUrl});
tagName.store = store;
// maybe use store.fetch() to pre-select item #1

通常情况下,ItemFileReadStore无法做到这一点,它的设计目的是提前下载所有数据,而不是在服务器上进行过滤。

相反,您应该使用QueryReadStore、JsonReadStore等。