2008-11-07 29 views
0

我正在尝试使用带有Ajax数据源的dojo组合框。我有什么是dojo组合框源代码的动态url

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

哪个不工作,只是我不能限制搜索服务器端的设置,因为我不知道如何改变从该数据是为了指定拉着网址参数。任何提示?

回答

1

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

基本上没有必要预先定义一个<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 
+0

事实证明这是我最不问题,但您的解决方案的工作很好,谢谢。 – stimms 2008-11-08 22:23:57

0

这通常不是ItemFileReadStore,其目的是完成预先下载所有数据,而不是在服务器上过滤。

相反,你应该使用QueryReadStoreJsonReadStore