问题描述
我想使用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 (将#修改为@)