Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   C# ASP.NET Postback und Div Style (https://www.delphipraxis.net/103845-asp-net-postback-und-div-style.html)

Jelly 22. Nov 2007 15:49


ASP.NET Postback und Div Style
 
Ich tu mir mal wieder verdammt schwer mit einer ASP.NET Anwendung:

Ich 2 Radiobuttons (ASP.NET WebControls.RadioButton). Je nachdem welcher der beiden gewählt wird, blende ich über JavaScript ein <DIV> Element ein aus. Das klappt so wie es soll. Dazu habe ich einfach im Page_Load Event der Seite jeweils für die Radiobutton mittels
Code:
opt_1.Attributes.Add("onclick", "Visuality('divName',0) ;");
opt_2.Attributes.Add("onclick", "Visuality('divName',1) ;");
Das Javascript Visuality blendet dann das <DIV> mit dem Namen divName dann ein oder aus (1 oder 0).

Die Sache hat aber einen Haken. Es handelt sich um ein Webformular, das beim Posten noch einige serverseitige Validierungen macht. Schlägt die Validierung fehl, so wird das Formular erneut angezeigt. Das hat dann aber den Nebeneffekt, dass das <DIV> nicht entsprechend meiner Radiobutton Wahl sichtbar ist oder nicht. Ich suche eine Möglichkeit, beim Page_Load Event der Seite, ein <DIV> Element einzublenden oder auszublenden. Ich weiss aber nicht, wie ich aus dem C# heraus an mein <DIV> Element komme :wall:

Phoenix 22. Nov 2007 15:58

Re: ASP.NET Postback und Div Style
 
Gar nicht.
Das Problem ist, dass das Div in der aspx kein Objekt im Sinne von ASP.NET ist, und Du es somit auch nicht manipulieren kannst.

An das Ende der Seite im ASPX gibst Du dann ein JavaScript aus:
Code:
<script>
  collapseDiv1(<%= RadioButton1.Checked.ToString() %>);
  collapseDiv2(<%= RadioButton2.Checked.ToString() %>);
</script>
Die Javascriptmethode collapseDiv1/2 (ist dann Dein Job ;-) ) schliesst / öffnet das div dann je nachdem, ob da hinten dann true oder false drin steht.

Jelly 22. Nov 2007 16:24

Re: ASP.NET Postback und Div Style
 
Das wars... Und ich hab jetzt die letzten 30 Minuten im OnLoad vom <Body> Tag rumgeschraubt, und das wollte nicht so recht.

Jetzt so (oder zumindest ähnlich), wie du vorschlägst, klappt es dann. Ganzen unten in der Html Seite folgendes eingefügt:
Code:
<script>
  AutoLoad() ;
</script>
AutoLoad ist wieder ein Javascript:
Code:
function Visuality(divElement, visible)
        {
            if (visible != 0)
                document.getElementById(divElement).style.display="inline" ;
            else
               document.getElementById(divElement).style.display="none" ;
           
        }
       
        function AutoLoad()
        {
            if (document.getElementById("opt_1").checked)
                Visuality("divName", 0) ;
            else
                Visuality("divName", 1) ;
        }
Also dieses ganze Webgedöhns raubt mir immer wieder den letzten Nerv... Aber jetzt klappts wohl.

Besten Dank.

Khabarakh 22. Nov 2007 17:18

Re: ASP.NET Postback und Div Style
 
Bin totaler Noob in Sachen ASP.Net und steh' gerade wahrscheinlich auf irgendeinem Schlauch (wer den da bloß wieder hingelegt hat :stupid: ), aber Folgendes funktioniert bei mir wunderbar:
XML-Code:
 <div>
        <asp:RadioButtonList ID="radioList" runat="server">
            <asp:ListItem Selected="True">Wähl mich!</asp:ListItem>
            <asp:ListItem>Wähl mich bloß nicht!</asp:ListItem>
        </asp:RadioButtonList>
        <asp:Button ID="Button1" runat="server" Text="Postback" />
       


        <div id="div" runat="server">
        Gute Wahl.
    </div>
    </div>
Code:
protected void Page_Load(object sender, EventArgs e)
    {
      bool first = true;
      foreach (ListItem item in radioList.Items) {
         item.Attributes.Add("onclick",
            string.Format("Visuality('div',{0}) ;", first.ToString().ToLower()));
         first = false;
      }

      if (radioList.SelectedIndex != 0)
         div.Style.Add(HtmlTextWriterStyle.Display, "none");
    }

Jelly 23. Nov 2007 07:44

Re: ASP.NET Postback und Div Style
 
Zitat:

Zitat von Khabarakh
Code:
div.Style.Add(HtmlTextWriterStyle.Display, "none");

Mich wundert allerdings, wie du auf div zugreifen kannst :gruebel:
Ich kann somit dein Beispiel leider nicht nachvollziehen.

Phoenix 23. Nov 2007 07:45

Re: ASP.NET Postback und Div Style
 
Der Div-Tag braucht ne Id und das Argument runat="Server" in der Markup.
Das ist allerdings nicht wirklich der ganz saubere Stil.

Jelly 23. Nov 2007 09:00

Re: ASP.NET Postback und Div Style
 
Aaah.... Das war der Trick...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz