none
MasterPage, ModalPop und z-index Problem RRS feed

  • Frage

  • Hallo allerseits!

    Ich stehe weidermal vor einem Problem wo ich hoffe das ihr mir weiter helfen könnt.
    Ich habe eine Masterpage, eine ASPX-Seite (Seite1) und einen ModalPopupExtender auf Seite1.

    Die Masterpage hat 2 Links welche ich nach Aufruf von ModalPopupExtender auf Seite1 deaktivieren bzw. nicht zugänglich machen möchte.
    Der ModalPopupExtender deaktiviert zwar die Seite1 auf dem diese aufgerufen wurde aber nicht die 2 links vom Masterpage.

    Wenn ich den Bereich auf der Masterpage Seite die CSS-Eigenschaft "z-index:0" und den DIV-Tag von Seite1 die CSS-Eigenschaft "z-index:1" hinzufüge dann funktioniert es zwar aber der Inhalt von Seite1 überlappt den Bereich vom Masterpage sobald man scrollt.

    Ich möchte aber gern das der Bereich vom MasterPage den Body-Bereich (Inhalt) von Seite1 wie gewohnt überlappt und trotzdem nach aufruf vom ModalPopupExtender auf Seite1 den Bereich (die 2 Links) irgendwie nicht zugänglich machen.

    Ich habe auch mit Session-Variablen versucht das Problem zu lösen in dem ich vor dem Aufruf vom ModalPopupExtender auf Seite1 eine Session-Variable befüllt habe und diese habe ich dann auf der Masterpageseite abgefragt da die Page_Load vom Masterpage Seite auch immer nach einem Postback aufgerufen, jedoch auch ohne Erfolg.

     

    Wie kann ich das bewärkställigen?
    Danke im vorraus und

     

    Lg

    S.R

    Sonntag, 15. Januar 2012 19:22

Antworten

Alle Antworten

  • Hi,

    Du solltest den ASP.NET Ajax Kram weglassen und bspw. jQueryUI einsetzen. Das ist zum einen erheblich einfacher zu verwenden und man quält sich nicht mit solchen Problemen wie dem von dir gerade festgestellten Übel rum.

      http://jqueryui.com/demos/dialog/#modal-form

    Das wäre wahrscheinlich in etwa das, was Du suchst.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert String.Rise Samstag, 28. Januar 2012 08:20
    Sonntag, 15. Januar 2012 23:28
    Moderator
  • Hallo Stefan,

    danke vorerst für deine Antwort jedoch habe ich noch einpaar Fragen.

    1) JQuery würde das Problem nicht lösen da die JQuery-Funktion auch auf einer aspx aufgerufen wird der eine Masterpage hat.
    Dann würde die JQuery-Funktion wiederum die aktuelle Website nicht zugänglich machen und die 2 Links wären weiterhin zugänglich, oder irre ich mich. Gilt JQuery für die gesamte Website samt Masterpage?

    2) Die Website ist in Mehrsprachig ausgelegt. Dazu lese ich im CodeBehind die entsprechende Language-xml und setzte die Text-Eigenschaft von den Labels usw. so fest. Geht das danach auch mit JQuery, so das ich den Text von Buttons, Labels usw. Dynamisch halten kann?

     

    Danke und Lg

    S.R.

    Montag, 16. Januar 2012 16:18
  • Hi,

    probiers doch einfach mal mit jQuery aus. Ich gehe davon aus, dass der ModalPopupExtender entweder einen Bug hat oder, falls gewollt, nur seinen eigenen Container deaktiviert, was aber ziemlich komisch wäre.

    Mit dem jQueryUI Dialog hatte ich den von dir beschriebenen Effekt noch nie. Einzig, wenn Du mit "MasterPage" und "Seite" ein IFrame oder ein richtiges Frame meinst, könnte das passieren. Dann solltest Du aber eh die Struktur deiner Seiten überdenken.

    Du gibst ja genau vor, was wie ausgegeben wird. Ergo kannst Du auch sämtliche Texte sprachspezifisch ausgeben.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Montag, 16. Januar 2012 16:30
    Moderator
  •  

     

    So, jetzt habe iich das nächste Problem.

    Ich habe mal zu testTestzwecken ein neues Projekt erstellt um das JQuery mit dem Datapicker zu testen jedoch wird das nicht angezeigt.
    Hier mal der Code:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">    
        <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
        <link href="~/Styles/jquery-ui-1.8.17.custom.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="~/Scripts/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="~/Scripts/jquery-ui-1.8.17.custom.min.js"></script>
    
        <script type="text/javascript">
            $(document).ready(function () {
                $("#datepicker").datepicker()
            });
        </script>
    
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div><asp:TextBox ID="datepicker" runat="server" name="date" Width="300px" CssClass="textEntry" /></div>
        </form>
    </body>
    </html>
    

     

    Habe das auch mit


    $(document).ready(function () {
                $("input[id$='datepicker']").datepicker()
            });

     

    und


    $(document).ready(function () {
                $("#<%= datepicker.ClientID %>").datepicker()
            });

     

    probiert. Keines davon funktioniert. Die 3 Dateien
    jquery-ui-1.8.17.custom.css
    jquery-1.7.1.min.js
    jquery-ui-1.8.17.custom.min.js
    liegen auch da, warum funktioniert das nicht???

     

    Danke im vorraus
    Lg S.R.

     


    • Bearbeitet String.Rise Samstag, 21. Januar 2012 11:26
    Samstag, 21. Januar 2012 11:25