duke63: Ändern der Style class via javascript hat keinen Effekt

Hallo,
irgend etws simples mache oder denke ich falsch.
Mein Problem:
Ich habe ein aspx File (Asp.net).
Dort versuche ich Div Container über CSS ein und auszublenden.
Dies ist nur Testcode, um das Prinzip zu verstehen. Aber er läuft nicht.

'hideDIV' setze ich beim Laden der Seite serverseitig.

Gridresult.className='showDiv'; wird ausgeführt. Im Debugger kann ich auch 'showDIV' sehen.
Aber nach dem Anzeigen der Seite steht wieder 'hideDIV' als Klasse für das DIV da?

Irgend eine Idee???

Javascript:
  function SetDivContent(divNo)   {
       var Gridresult = document.getElementById("Content_ProdList");
       if (Gridresult.className=='hideDiv') {
                  Gridresult.className='showDiv';
        }

Aspx:
...
<ul id="test">
                                                <li><a onclick="SetDivContent(1);" id="A1">Div1</a></li>
                                                <li><a onclick="SetDivContent(2);" id="A2">Div2</a></li>
                                                <li><a onclick="SetDivContent(3);" id="A3">Div3</a></li>
                                                <li><a onclick="SetDivContent(4);" id="A4">Div4</a></li>
                                             </ul>
                                        </td>
 <td class="leftMain">
<div id="Content_ProdList" runat="server">
...

Css:

/*DIV Visibility */

.hideDiv
{
display: none;
}

.showDiv
{
width: 100%;
height: 100%;
display: block;
}

Vielen Dank für jeden Tipp!!!

duke63

  1. Hi,

    irgend etws simples mache oder denke ich falsch.

    ja, ich glaube du hast es gut erkannt: Wahrscheinlich etwas sehr Simples.

    'hideDIV' setze ich beim Laden der Seite serverseitig.

    wie meinst du das?

    Gridresult.className='showDiv'; wird ausgeführt.

    Das überrascht mich. Denn dein Ausschnitt aus dem HTML-Code zeigt, dass das entsprechende Element überhaupt keine Klasse hat:

    <div id="Content_ProdList" runat="server">

    Deswegen dürfte die if-Abfrage eigentlich niemals zutreffen:

    var Gridresult = document.getElementById("Content_ProdList");
           if (Gridresult.className=='hideDiv') {
                      Gridresult.className='showDiv';
            }

    Ich habe den Verdacht, du vermischt -wie so viele- mal wieder client- und serverseitige Geschichten. Welcher Quellcode kommt wirklich beim Browser an? Das, was du bisher gezeigt hast, ist ja serverseitiger Code, der auch vom Server bereits teilweise verarbeitet wird. Das ist also für das Nachvollziehen von JS- oder CSS-Problemen nur hinderlich.

    Sieh also bitte in der Quelltextansicht deines Browsers nach, was wirklich ankommt. Erst dann kannst du erkennen, ob es sich um ein Clientseitiges (JS oder CSS) oder ein serverseitiges Problem (ASP) handelt.

    So long,
     Martin

    --
    Auf jeden Menschen auf der ganzen Welt entfallen statistisch gesehen etwa 3000 Spinnen, wie Wissenschaftler jetzt festgestellt haben.
    Wer will meine haben? Denn ich will sie bstimmt nicht.
    1. Hi Martin,
      danke für deinen Post.

      Das script wurde ausgeführt, die Änderungen des Styles konnte ich im Debugger auch sehen.
      Nach dem Rendern der Seite war die Änderung wieder weg?
      Ich habe das Programm komplett neu aufgebaut und irgendwie ist der Fehler dadurch verschwunden und alles funktioniert wie erwartet.
      Keine Ahnung woran es lag es würde mich wirklich interessieren habe aber keine Zeit das jetzt nachzuvollziehen.

      Es ist ein ASP.Net Programm und ich vermute, dass das irgendwas mit der Viewstate zu tun hat.

      danke nochmal für deine Anmerkungen,

      duke63

      Hi,

      irgend etws simples mache oder denke ich falsch.

      ja, ich glaube du hast es gut erkannt: Wahrscheinlich etwas sehr Simples.

      'hideDIV' setze ich beim Laden der Seite serverseitig.

      wie meinst du das?

      Gridresult.className='showDiv'; wird ausgeführt.

      Das überrascht mich. Denn dein Ausschnitt aus dem HTML-Code zeigt, dass das entsprechende Element überhaupt keine Klasse hat:

      <div id="Content_ProdList" runat="server">

      Deswegen dürfte die if-Abfrage eigentlich niemals zutreffen:

      var Gridresult = document.getElementById("Content_ProdList");
             if (Gridresult.className=='hideDiv') {
                        Gridresult.className='showDiv';
              }

      Ich habe den Verdacht, du vermischt -wie so viele- mal wieder client- und serverseitige Geschichten. Welcher Quellcode kommt wirklich beim Browser an? Das, was du bisher gezeigt hast, ist ja serverseitiger Code, der auch vom Server bereits teilweise verarbeitet wird. Das ist also für das Nachvollziehen von JS- oder CSS-Problemen nur hinderlich.

      Sieh also bitte in der Quelltextansicht deines Browsers nach, was wirklich ankommt. Erst dann kannst du erkennen, ob es sich um ein Clientseitiges (JS oder CSS) oder ein serverseitiges Problem (ASP) handelt.

      So long,
      Martin

  2. Hat sich erledigt...
    Kann gelöscht werden?