2010-06-15 2 views
0

Veuillez excuser la longueur de ce poste, mais j'avais besoin d'expliquer ce que je vois. J'ai une option onSelectRow qui est censé construire html <li> balises Stacked (commejqGrid concaténation/construction incorrect tag html

<li>...</li> 
    <li>...</li> 
    <li>...</li> 

) au nombre d'éléments XML statiques que je suis à la recherche. Mais mon script concatène tous les liens de l'image src au lieu de construire l'ensemble de la balise listobject. Tout le reste dans mon script jqGrid fonctionne à l'exception des éléments répétés dans mon fichier XML.

onSelectRow: function() { 
    var gsr = $('#searchResults').jqGrid('getGridParam', 'selrow'); 
    if (gsr) { 
    var data = $('#searchResults').jqGrid('getRowData', gsr); 
    $('#thumbs ul').html('<li><a class='thumb' href='' + data.piclocation + '' title='' + data.pictitle + ''><img src='" + data.picthumb + "' alt='" + data.pictitle + "' /></a><div class='caption'><div class='image-title'>" + data.pictitle + "</div></div></li>"); 
};" 

mon fichier xml est quelque chose comme ceci:

<photo> 
      <pic> 
       <asset>weaponLib/stillMedia/slides/A106.jpg</asset> 
       <thumb>weaponLib/stillMedia/thumbs/A106.jpg</thumb> 
       <caption>Side view of DODIC A106</caption> 
       <title>Side view of 22 caliber long rifle ball cartridge</title> 
      </pic> 
      <pic> 
       <asset>weaponLib/stillMedia/slides/A106_A.jpg</asset> 
       <thumb>weaponLib/stillMedia/thumbs/A106_A.jpg</thumb> 
       <caption>Side view of DODIC A106</caption> 
       <title>Side view of 22 caliber long rifle ball cartridge</title> 
      </pic> 
      <pic> 
       <asset>weaponLib/stillMedia/slides/A106_B.jpg</asset> 
       <thumb>weaponLib/stillMedia/thumbs/A106_B.jpg</thumb> 
       <caption>Side view of DODIC A106</caption> 
       <title>Side view of 22 caliber long rifle ball cartridge</title> 
      </pic> 
      <pic> 
       <asset>weaponLib/stillMedia/slides/A106_C.jpg</asset> 
       <thumb>weaponLib/stillMedia/thumbs/A106_C.jpg</thumb> 
       <caption>Side view of DODIC A106</caption> 
       <title>Side view of 22 caliber long rifle ball cartridge</title> 
      </pic> 
      <pic> 
       <asset>weaponLib/stillMedia/slides/A106_D.jpg</asset> 
       <thumb>weaponLib/stillMedia/thumbs/A106_D.jpg</thumb> 
       <caption>Side view of DODIC A106</caption> 
       <title>Side view of 22 caliber long rifle ball cartridge</title> 
      </pic> 

fonctionne Mon script bien quand il ne voit qu'une seule séquence, mais quand il voit plus d'un, il met tous les fichiers html dans les balises ensemble, puis pour la légende et le titre font la même chose pour eux. Il génère un seul jeu d'étiquettes <li></li> au lieu de 5 dans l'exemple ci-dessus comme je le souhaite.

Les balises <li> sont utilisées par un utilitaire de diaporama (avec vignettes).

intérieur Firebug, je peux voir l'objet qu'il est construit pour moi:

<a title="Side view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridge" href="weaponLib/stillMedia/slides/A106.jpgweaponLib/stillMedia/slides/A106_A.jpgweaponLib/stillMedia/slides/A106_B.jpgweaponLib/stillMedia/slides/A106_C.jpgweaponLib/stillMedia/slides/A106_D.jpg" class="thumb"><img alt="Side view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridgeSide view of 22 caliber long rifle ball cartridge" src="weaponLib/stillMedia/thumbs/A106.jpgweaponLib/stillMedia/thumbs/A106_A.jpgweaponLib/stillMedia/thumbs/A106_B.jpgweaponLib/stillMedia/thumbs/A106_C.jpgweaponLib/stillMedia/thumbs/A106_D.jpg"></a> 

Dans jqGrid, la cellule tient:

<td title="weaponLib/stillMedia/slides/A106.jpgweaponLib/stillMedia/slides/A106_A.jpgweaponLib/stillMedia/slides/A106_B.jpgweaponLib/stillMedia/slides/A106_C.jpgweaponLib/stillMedia/slides/A106_D.jpg" style="text-align: center; display: none;" role="gridcell">weaponLib/stillMedia/slides/A106.jpgweaponLib/stillMedia/slides/A106_A.jpgweaponLib/stillMedia/slides/A106_B.jpgweaponLib/stillMedia/slides/A106_C.jpgweaponLib/stillMedia/slides/A106_D.jpg</td> 

Je sais que jqGrid construit mal. Je suis à double tranchant quant à la direction à prendre pour le réparer. Toute suggestion serait grandement appréciée.

+0

Un échantillon en ligne de cette application peut être utilisé sur www.serco-hrc.com/testMe/index.html Seul le menu des armes légères est connecté au réseau et aux données. A106 est l'une des lignes qui a plusieurs images à afficher. –

Répondre

0

il me semble que le statemant

$('#thumbs ul').html('<li><a class='thumb' href='' + data.piclocation + '' title='' data.pictitle + ''><img src='" + data.picthumb + "' alt='" + data.pictitle + "' /></a><div class='caption'><div class='image-title'>" + data.pictitle + "</div></div></li>"); 

intérieur de onSelectRow devrait être un peu changé pour utiliser plus " au lieu de ' (ou vous devez utiliser le double '):

$('#thumbs ul').html("<li><a class='thumb' href='" + 
         data.piclocation + "' title='" + data.pictitle + 
         "'><img src='" + data.picthumb + 
         "' alt='" + data.pictitle + 
        "' /></a><div class='caption'><div class='image-title'>" + 
        data.pictitle + "</div></div></li>"); 

vous peut voir dans les couleurs sur stackoverflow.com que maintenant tout semble plus correct.

+0

Oleg, Désolé pour la confusion. Quand j'ai posté ma question, j'ai été perdu sur la façon de définir le script dans ma question. J'avais commencé à modifier mon script pour le voir. Ensuite, j'ai trouvé le bon moyen d'intégrer le script. Mon script original ressemble à votre suggestion. Lorsque le site ne doit afficher qu'une image, l'application fonctionne correctement. Mais lorsqu'il est nécessaire de générer

  • empilés, il va haywire. J'ai une version à http://www.serco-hrc.com/testMe/index.html. Cela devrait vous laisser voir ce qui se passe sans que je mette des instantanés sur ce site. A085 (image unique) A106 (image multiple) sous –

    +0

    l'élément de menu Small Arms. Toutes les suggestions/directions seraient grandement appréciées. Tony –

    +0

    Désolé, mais je ne comprends pas vraiment ce que vous code devrait faire.Je pourrais trouver '

    ' que je ne comprends pas mais il semble correct. Le code principal qui crée jqGrid et du HTML je ne trouve pas. – Oleg