2009-07-10 8 views
0

J'essaie de faire la même chose que harangues Exemple iours: http://blog.davglass.com/files/yui/tab3/TabView et problème de bouton Fermer

Mais je dois oublier quelque chose ...

J'ai cette erreur:

Noeud n'a pas été trouvé "code:" 8 [Break on cette erreur] this._tabParent.removeChild ( tab.get (ELEMENT));

Voici mon code:

function onGenePubmedSubmit() { 

var contentCur = document.getElementById("curatedquery"); 
var contentValue = contentCur.value; 

// New tabView widget 
var tabView = new YAHOO.widget.TabView('tvcontainer'); 

// Define label and content 
var labelText = nameReq + '<span class="close">X</span>'; 
var tabcontainer = idReq; 
var content = "<div id="+tabcontainer+"></div>"; 

// Add new tab - work well ! 
if (labelText && content) 
{ 
tabView.addTab(new YAHOO.widget.Tab({ 
       label:labelText, 
       content:content, 
       id: 'pubmedView', 
       active:true })); 
       } 

// Define DataTable myPubmedListTable Columns 
var myColumnDefsPubmed = [ 
    {key:"pmid", label:"PMID", sortable:true}, 
    {key:"articletitle", label:"Article Title", sortable:true}, 
    {key:"abstract", label:"Abstract", sortable:true}, 
    {key:"authorlist", label:"Authorlist", sortable:true}, 
    {key:"medline", label:"Medline", sortable:true} 
    ]; 

// Define DataSource 
var myDataSourcePubmed = new YAHOO.util.DataSource("qct-list-article.html"); 
myDataSourcePubmed.responseType = YAHOO.util.DataSource.TYPE_JSON; 
myDataSourcePubmed.connXhrMode = "queueRequests"; 
myDataSourcePubmed.responseSchema = { 
    resultsList: "articleItemList", 
    fields: ["pmid","articletitle","abstract","authorlist","medline"] 
    }; 

// myPubmedListTable config 
var oConfigsPubmed = { 
    initialRequest: '?term='+ contentValue, 
    selectionMode: "single" 
    }; 

// Create new DataTable - myPubmedListTable 
var myPubmedListTable = new YAHOO.widget.DataTable(idReq, myColumnDefsPubmed, myDataSourcePubmed,oConfigsPubmed); 

// Show myPubmedListTable 
myPubmedListTable.onShow(); 

// Remove tab on tabView ----------- this part don't work---------- !   
YAHOO.util.Event.on(tabView.getElementsByClassName('close')[0], 'click', function(ev) { 
YAHOO.util.Event.stopEvent(ev); 
      // some test - but don't work !    
      // tabView.set('activeTab', tabView.get('tabs')[0]); 
      // tabView.set('activeIndex', 1); 
      // tabView.removeTab(tabView.get("activeTab")); 
tabView.removeTab(tabView); 
         }); 
} 

quelqu'un peut me aider?

Qu'est-ce qui me manque?

Merci.

Répondre

0

J'ai trouvé une solution cela fonctionne, et j'ai ajouté un paginateur

function onGenePubmedSubmit() { 

var contentCur = document.getElementById("curatedquery"); 
var contentCurValue = contentCur.value; 

var tabView = new YAHOO.widget.TabView('tvcontainer'); 

var labelText = nameReq + '<span class="close">X</span>'; 
var tabcontainer = idReq; 
var content = "<div id="+tabcontainer+"></div>"; 

if (labelText && content) 
{ 
var ctabView = new YAHOO.widget.Tab({ 
label:labelText, 
content:content, 
id: 'pubmedView'+idReq, 
active:true }); 
} 

YAHOO.util.Event.on(ctabView.getElementsByClassName('close')[0], 'click', 
function(ev) { 
YAHOO.util.Event.stopEvent(ev); 

// Verify if Tab to remove is curently the activ Tab 
if (tabView.get('activeTab')==ctabView) 
{ 
// We activate the first Tab 
tabView.set('activeTab', tabView.get('tabs')[0]); 
} 
// If Tab to remove not activ Tab 
else if (tabView.get('activeTab')!=ctabView) 
{ 
// We set the index of the Tab that is currently active in the TabView. 
tabView.set('activeIndex',tabView.get('activeIndex')); 
} 

tabView.removeTab(ctabView); 
}); 

// Verify if tab exist (or not) 
var tabExist = document.getElementById('pubmedView'+idReq); 
if (tabExist == null) 
{ 
tabView.addTab(ctabView); 
} 
else 
{ 
alert("Tab already exist") ; 
} 

// Define DataTable myPubmedListTable Columns 
var myColumnDefsPubmed = [ 
{key:"pmid", label:"PMID", sortable:true}, 
{key:"articletitle", label:"Article Title", sortable:true}, 
{key:"abstract", label:"Abstract", sortable:true}, 
{key:"authorlist", label:"Authorlist", sortable:true}, 
{key:"medline", label:"Medline", sortable:true} 
]; 

// Define DataSource 
var myDataSourcePubmed = new YAHOO.util.DataSource("qct-list-article.html"); 
myDataSourcePubmed.responseType = YAHOO.util.DataSource.TYPE_JSON; 
myDataSourcePubmed.connXhrMode = "queueRequests"; 
myDataSourcePubmed.responseSchema = { 
resultsList: "articleItemList", 
fields: ["pmid","articletitle","abstract","authorlist","medline"], 
metaFields: { 
totalRecords: "totalArticleRecords" // Access to value in the server response 
} 
}; 

// Add Paginator 
var pubmedPaginator = new YAHOO.widget.Paginator({ 
rowsPerPage: 5, 
template: YAHOO.widget.Paginator.TEMPLATE_ROWS_PER_PAGE, 
rowsPerPageOptions: [5,10,15,20] 
}); 

var myRequestPubmedBuilder = function(oState,oSelf) 
{ 
oState = oState || {pagination:null, sortedBy:null}; 

var retstart = (oState.pagination != null) ? oState.pagination.recordOffset : 0; 
var retmax = (oState.pagination != null) ? oState.pagination.rowsPerPage : 5; 

return '?term=' + contentCurValue + '&retstart=' + retstart + '&retmax=' + retmax; 
} 

// myPubmedListTable config 
var oConfigsPubmed = { 
initialRequest: '?term=' + contentCurValue + '&retstart=0' + '&retmax=5', 
dynamicData: true, // Enables dynamic server-driven data 
selectionMode: "single", 
paginator: pubmedPaginator, 
generateRequest : myRequestPubmedBuilder, 
caption : "Pubmed articles for this query : " //+ contentCountPubmed 
}; 

// Create new DataTable - myPubmedListTable 
if (tabExist == null) 
{ 
var myPubmedListTable = new YAHOO.widget.DataTable(idReq, myColumnDefsPubmed, myDataSourcePubmed,oConfigsPubmed); 


myPubmedListTable.handleDataReturnPayload = function(oRequest, oResponse, oPayload) { 
if (oPayload == undefined) 
{ oPayload = {}; } 

oPayload.totalRecords = oResponse.meta.totalRecords; 
return oPayload; 
} 

// Show myPubmedListTable 
myPubmedListTable.onShow(); 
} 
} 
0

Il semble y avoir des choses étranges là-bas; Je ne peux pas voir où idReq est défini et le contenu est défini deux fois.

Je me demande si le contenu étant quelque chose de bizarre comme <div id=></div> pourrait le causer.

0

J'ai fait quelques changements: maintenant un seul contenu (le contenu est contentCur).

Mais même erreur.

Dans mon code: idReq est définie comme globale (il est ok - je peux ajouter des onglets), j'ai quelque chose comme:

<div id=901></div> 

je pense, le problème est en (mais ce que je manque?) :. YAHOO.util.Event.on (tabView.getElementsByClassName ('close') [0], 'click', function (ev) { ...

Merci

Questions connexes