Robert: XML data islands + css problem

Hello,

ich habe eine Frage zur Verwendung von CSS bei XML Data islands.

Lasst mich kurz darstellen was ich machen will.

Aus einer XML Datei werden Daten ausgelesen und in eine Tabelle geschrieben. Meine Tabelle hat also einen Tabellenheader und dann eine Zeile (im Quelltext) wo per "datafld=..." die Daten aus dem XML Filge geholt werden. Der Import der Daten funktioniert ohne Probleme.

Ich möchte jetzt über einen Button bestimmte Zellen der Tabelle einblenden. Ich weise also einer Zelle per CSS visibility:hidden zu und habe dann einen button der per OnClick das ganze sichtbar machen soll.

Um das zu ermöglichen, muss ich jedoch der Zelle eine ID zuweisen, den der ausführliche Befehl zum sichtbar  machen lautet OnClick="document.getElementById('xxx').style.visibility:visible".

Wenn ich nun 3 Datensätze in der XML datei habe, wird das XML Data island so interpretiert, dass es die 3 Datensätze richtig darstellt. ABER die ID wird nur an die erste Zeile vergeben.

Ich habe also dem ersten Element der ersten Zeile eine ID gegeben. Bei 5 Datensätzen im XML file ergeben sich daraus 5 Zeilen. Die ID, und damit das sichtbar machen, funktioniert jedoch nur für Zeile 1.

Gibt es eine möglichkeit entsprechend der Anzahl der Datensätze iterierend eine ID zu vergeben, (id="beschreibung"+NummerDesAktuellenDatensatzes) ? Oder hat jemand eine andere Idee, wie ich gezielt Elemente einer Spalte innerhalb der Tabelle ansprechen kann?

Vielen dank im Voraus.

Robert

  1. Hi,

    ich habe eine Frage zur Verwendung von CSS bei XML Data islands.

    Vorab eine grundsätzliche Frage: Ist Dir bewußt, dass dies nur im IE funktioniert bzw. entwickelst Du das speziell für IE-User?

    freundliche Grüße
    Ingo

    1. Hallo Ingo,

      ja bin ich mir bewusst. Ist ausschließlich für IE User.
      Mache das hier für mein Unternehmen und da läuft ausschließlich der IE.

      1. Hi,

        Mache das hier für mein Unternehmen und da läuft ausschließlich der IE.

        noch..;-)
        Allerdings erschweren Anwendungen wie diese natürlich auch einen Umstieg.

        Zu Deinem Problem: kannst Du nicht ohne IDs auskommen, indem Du this als Referenz auf die button nimmst und Dich dann im Elementbaum durchhangelst?

        freundliche Grüße
        Ingo

        1. Also ich habs versucht, aber so richtig bin ich nicht klar gekommen.
          Ich paste mal meinen source rein, wie er aussehen soll.

          Es soll also eine Zelle geunhidet werden, wenn ich unten auf den Button clicke. Das problem ist, wenn ich 2 einträge im XML file habe,  wird durch das Data Island zwar alles korrekt gelade also alle 2 einträge, das visible machen durch OnClick funktioniert aber nur bei der ersten Zeile. Und ich finde leider keine Lösung :(

          <html><head><title></title></head><body>

          <XML ID="line1" SRC="line1.xml"></XML>

          <table datasrc="#line1" name="table" >
                  <tr style="background-color: #ddd;">
                      <thead>

          <td>
                              Item Name
                          </td>
                          <td >
                              Item Number
                          </td>
                      </thead>
                  </tr>

          <tr style="background-color: #fff;" name="line1" >
                      <tbody>
                         <td>
                           <span datafld="name" style="visibility: hidden;" id="name"></span>
                          </td>
                          <td>
                           <span datafld="number" style="visibility: hidden;" id="number"></span>
                          </td>
                      </tbody>
                  </tr>
          </table>

          <input type="button" value="unhide" onClick="document.getElementById(number).style.visibility='visible';">

          </body></html>

          1. Hi,

            das visible machen durch OnClick funktioniert aber nur bei der ersten Zeile.

            logisch - wenn beide Einträge dieselbe ID haben sollten, holt sich document.getElementById(number) - wenn überhaupt - nur das erste Element.
            Das hat dann nichts mit XML zu tun, sondern mit validem HTML und Javascript.

            freundliche Grüße
            Ingo