dojox.data.HtmlStore.fetchItemByIdentity
dojo.require("dojox.data.HtmlStore");
defined in dojox/data/HtmlStore.js
See dojo.data.api.Identity.fetchItemByIdentity()
Usage
function (keywordArgs) (view source)
var identity = keywordArgs.identity; var self = this; var item = null; var scope = null; if(!this._rootNode){ if(!this.url){ this._rootNode = dojo.byId(this.dataId); this._indexItems(); if(self._rootNode.rows){ //Table item = this._rootNode.rows[identity + 1]; }else{ //Lists for(var i = 0; i < self._rootNode.childNodes.length; i++){ if(self._rootNode.childNodes[i].nodeType === 1 && identity === dojox.data.dom.textContent(self._rootNode.childNodes[i])) { item = self._rootNode.childNodes[i]; } } } if(keywordArgs.onItem){ scope = keywordArgs.scope?keywordArgs.scope:dojo.global; keywordArgs.onItem.call(scope, item); } }else{ var getArgs = { url: this.url, handleAs: "text" }; var getHandler = dojo.xhrGet(getArgs); getHandler.addCallback(function(data){ var findNode = function(node, id){ if(node.id == id){ return node; //object } if(node.childNodes){ for(var i=0; i<node.childNodes.length; i++){ var returnNode = findNode(node.childNodes[i], id); if(returnNode){ return returnNode; //object } } } return null; //null } var d = document.createElement("div"); d.innerHTML = data; self._rootNode = findNode(d, self.dataId); self._indexItems(); if(self._rootNode.rows && identity <= self._rootNode.rows.length){ //Table item = self._rootNode.rows[identity-1]; }else{ //List for(var i = 0; i < self._rootNode.childNodes.length; i++){ if(self._rootNode.childNodes[i].nodeType === 1 && identity === dojox.data.dom.textContent(self._rootNode.childNodes[i])) { item = self._rootNode.childNodes[i]; break; } } } if(keywordArgs.onItem){ scope = keywordArgs.scope?keywordArgs.scope:dojo.global; keywordArgs.onItem.call(scope, item); } }); getHandler.addErrback(function(error){ if(keywordArgs.onError){ scope = keywordArgs.scope?keywordArgs.scope:dojo.global; keywordArgs.onError.call(scope, error); } }); } }else{ if(this._rootNode.rows[identity+1]){ item = this._rootNode.rows[identity+1]; if(keywordArgs.onItem){ scope = keywordArgs.scope?keywordArgs.scope:dojo.global; keywordArgs.onItem.call(scope, item); } } }
parameter | type | description |
---|---|---|
keywordArgs |