lubb: JavaScript Wer hat Postback ausgelöst

hallo Leute,

kann man der ControllName feststellen, der einen Postback ausgelöst hat?

wenn ja WIE?

Beste Grüsse
Lubb

  1. Hallo,

    kann man der ControllName feststellen, der einen Postback ausgelöst hat?

    Ja.

    wenn ja WIE?

    http://www.lmgtfy.com/?q=asp.net controlname postback

    Übrigens kannst du an dieser Antwort in einem anderen Forum erkennen, dass deine Art zu fragen nicht optimal ist.

    Grüße

    1. hallo

      Danke für deine Antwort,

      leider ist das nicht was ich suche, ich möchte per javascript der ControllName ermitteln (nicht festsetzen).

      ich verwende in die WebAnwendung die javascript-function "window.onbeforeunload", diese Methode wird (mein fall) immer ausgelöst zusammen mit dem Postback z.B. Buttons oder Dropdownlist

      für butten habe ich eine bool variable deklarieren und per OnClientClick="needToConfirm = false;" auf false gesetzt so wird der function "window.onbeforeunload" nicht verarbeitet

      bei dropdownlist ist es nicht möglich(das ist mein Problem) die Methode

      "window.onbeforeunload" soll nicht ausgeführt werden wenn der User die dropdownlist ändert.

      Beste grüsse
      lubb

      1. Hallo,

        kannst du mal ein minimal Beispiel posten? Also ein HTML/Javascript Fragment wo man dein Problem nachvollziehen kann.

        Soweit ich dich verstanden habe, möchtest du die Ausführung des Codes aus "window.onbeforeunload" bei einer Veränderung in der Auswahlliste verhindern. Das heißt, dass du dort ein "onchange" oä Event definiert hast, welches die Seite neu laden soll?

        Grüße

        1. Hallo,

          Soweit ich dich verstanden habe, möchtest du die Ausführung des Codes aus "window.onbeforeunload" bei einer Veränderung in der Auswahlliste verhindern. Das heißt, dass du dort ein "onchange" oä Event definiert hast, welches die Seite neu laden soll?

          dieser Eventhandler müsste in diesem Fall doch einfach nur die Überwachung von window.onbeforeunload beenden, z.B. mit

          window.onbeforeunload = null

          als erster Anweisung im Eventhandler, siehe molily.

          Freundliche Grüße

          Vinzenz

        2. Guten Moregn,

          Die lösung kann sehr einfach sein!

          die Dropdownlist kann mit der option onchange="needToConfirm = false;"

          so muss ich nicht mehr prüfen, on die Dropdownlist die Postback ausgelöst hat.

          <asp:DropDownList ID="ddlKostenstelle" runat="server" OnSelectedIndexChanged="KostenstelleChanged" AutoPostBack="true" onchange="needToConfirm = false;">  
                     </asp:DropDownList>  
            
            
          <script type="text/javascript">  
            var ids = new Array('ctl00_ContentPlaceHolderContent_tbSerienNr', 'ctl00_ContentPlaceHolderContent_tbRechnungsNr'  );  
            
            
            var values = new Array();  
            
            function populateArrays()  
            {  
            
              // assign the default values to the items in the values array  
              for (var i = 0; i < ids.length; i++)  
              {  
                var elem = document.getElementById(ids[i]);  
                if (elem)  
                {  
                  if (elem.type == 'select-one')  
                    values[i] = elem.options.selected;  
                  else if( elem.type == 'text' || elem.type == 'textarea')  
                    values[i] = elem.value;  
                }  
              }  
            
            }  
            
            var needToConfirm = true;  
            
            window.onbeforeunload   = confirmExit  
            
           function confirmExit()  
            {  
            
          var test = window.form1.target;  
            
              if (needToConfirm)  
              {  
                populateArrays();  
            
                // check to see if any changes to the data entry fields have been made  
                for (var i = 0; i < values.length; i++)  
                {  
                  var elem = document.getElementById(ids[i]);  
                  if (elem)  
                  {  
                    if (elem.type == 'select-one')  
                    {  
                      for (var ii = 0; ii < elem.options.length; ii++)  
                      {  
                          if (elem.options[ii].selected != values[i])//elem.options[ii].defaultSelected  
                              if (elem.options[ii].value!=-1)  
                                  return "Wollen Sie die Seite wirklich verlassen, ohne die Änderungen zu speichern?";  
                      }  
                    }  
                    else if ((elem.type == 'text') && elem.value != values[i])//elem.defaultValue )  
                      return "Wollen Sie die Seite wirklich verlassen, ohne die Änderungen zu speichern?";  
                    else if ((elem.type == 'textarea') && elem.value != values[i])//elem.defaultValue )  
                      return "Wollen Sie die Seite wirklich verlassen, ohne die Änderungen zu speichern?";  
                   }  
                }  
                // no changes - return nothing  
              }  
            
            }  
            
            
            
          </script>  
          
          

          warum so schwer wenn es einfach sein kann!

          Vielen Dank für eure hilfe

          Beste Grüsse

          Lubb