如何解决dojo 1.2.3和ZF1-FilteringSelect不使用自定义存储
我想使用Custom Store进行FilteringSelect(有3个字段:id,name,search_me)
标准商店按名称搜索,并显示名称
我希望自定义商店通过search_me搜索并显示名称
我遇到了问题:FilteringSelect不使用自定义商店
SomeForm.php
$this->createElement(
'SomeElement','item_id',array(
'dojo' => 'searchMeStore',// 'dojoStore' => 'zlib.data.ReadStoreWithExtendedSearch',// 'dojoStore' => 'dojo.data.ItemFileReadStore','dojoType' => 'zlib.Form.ExtendedFilteringSelect','storeUrl' => '/items.json','autocomplete' => 'false','style' => 'width:33em',)
);
查看文件
<script>
dojo.require('zlib.data.ReadStoreWithExtendedSearch');
if (!dojo.getObject('searchMeStore')) {
zlib.data.ReadStoreWithExtendedSearch.prototype._getItemByIdentity = function(/* Object */ identity){
console.log('ReadStoreWithExtendedSearch._getItemByIdentity');
// summary:
// Internal function to look an item up by its identity map.
var item = null;
if(this._itemsByIdentity){
item = this._itemsByIdentity[identity];
}else{
item = this._arrayOfAllItems[identity];
}
if(item === undefined){
item = null;
}
return item; // Object
}
var searchMeStore = new wzib.data.ReadStoreWithExtendedSearch({url: ''});
dojo.setObject('searchMeStore',searchMeStore);
}
</script>
zlib.data.ReadStoreWithExtendedSearch
dojo.provide('zlib.data.ReadStoreWithExtendedSearch');
dojo.require('dojo.data.ItemFileReadStore');
dojo.declare(
'zlib.data.ReadStoreWithExtendedSearch',[dojo.data.ItemFileReadStore],{
constructor: function(/* Object */ keywordParameters){
console.log('ReadStoreWithExtendedSearch.constructor');
// summary: constructor
// keywordParameters: {url: String}
// keywordParameters: {data: jsonObject}
// keywordParameters: {typeMap: object)
// The structure of the typeMap object is as follows:
// {
// type0: function || object,// type1: function || object,// ...
// typeN: function || object
// }
// Where if it is a function,it is assumed to be an object constructor that takes the
// value of _value as the initialization parameters. If it is an object,then it is assumed
// to be an object of general form:
// {
// type: function,//constructor.
// deserialize: function(value) //The function that parses the value and constructs the object defined by type appropriately.
// }
this._arrayOfAllItems = [];
this._arrayOfTopLevelItems = [];
this._loadFinished = false;
this._jsonFileUrl = keywordParameters.url;
this._jsonData = keywordParameters.data;
this._datatypeMap = keywordParameters.typeMap || {};
if(!this._datatypeMap['Date']){
//If no default mapping for dates,then set this as default.
//We use the dojo.date.stamp here because the ISO format is the 'dojo way'
//of generically representing dates.
this._datatypeMap['Date'] = {
type: Date,deserialize: function(value){
return dojo.date.stamp.fromISOString(value);
}
};
}
this._features = {'dojo.data.api.Read':true,'dojo.data.api.Identity':true};
this._itemsByIdentity = null;
this._storeRefPropName = "_S"; // Default name for the store reference to attach to every item.
this._itemNumPropName = "_0"; // Default Item Id for isItem to attach to every item.
this._rootItemPropName = "_RI"; // Default Item Id for isItem to attach to every item.
this._reverseRefMap = "_RRM"; // Default attribute for constructing a reverse reference map for use with reference integrity
this._loadInProgress = false; //Got to track the initial load to prevent duelling loads of the dataset.
this._queuedFetches = [];
if(keywordParameters.urlPreventCache !== undefined){
this.urlPreventCache = keywordParameters.urlPreventCache?true:false;
}
if(keywordParameters.clearOnClose){
this.clearOnClose = true;
}
},_getItemByIdentity: function(/* Object */ identity){
console.log('ReadStoreWithExtendedSearch._getItemByIdentity');
// summary:
// Internal function to look an item up by its identity map.
var item = null;
if(this._itemsByIdentity){
item = this._itemsByIdentity[identity];
}else{
item = this._arrayOfAllItems[identity];
}
if(item === undefined){
item = null;
}
return item; // Object
},}
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。