none
[Enter]-Event nicht an Button sondern an ReportViewer RRS feed

  • Frage

  • Hallo zusammen,

      ich habe eine MasterPage mit einem "Logoff"-Button und eine Content-Page mit einem "ReportViewer"-Control. Wenn der ReportViewer den Focus hat und ich dann [Enter] drücke, wird der "Logoff"-Button betätigt, obwohl dieser nicht als "DefaultButton" deklariert ist. Wie kann ich es hinkriegen, dass das [Enter]-Event nicht beim "Logoff"-Button sondern im "ReportViewer"-Control landet, hier soll nämlich dadurch "View Report" ausgelöst werden.

    Gruß,

    Matthias


    • Bearbeitet MSchuppe Donnerstag, 22. September 2016 09:45
    Donnerstag, 22. September 2016 09:12

Antworten

  • Hallo,

    ich denke mal du müsstest Client seitig das Event abfangen und entsprechend weitergeben.

    Das abfangen mit jQuery geht so

    $(document).keypress(function(e) {
        if(e.which == 13) {
            alert('You pressed enter!');
        }
    });

     Gruß

    Thomas


    Icon für UWP: https://www.microsoft.com/store/apps/9nblggh5fzpm

    • Als Antwort markiert MSchuppe Freitag, 23. September 2016 06:33
    Donnerstag, 22. September 2016 22:42
  • Hallo Thomas,

      danke für die Antwort, sie hat mich auf die richtige Fährte gebracht, so habe ich's jetzt gelöst:

      $(document).keypress(function (ev)
      {
        if (ev.which == 13)
        {
          ev.preventDefault();
          $find('<%=ReportViewer1.ClientID%>').refreshReport();
        }
      });
    

    Gruß,

    Matthias

    • Als Antwort markiert MSchuppe Freitag, 23. September 2016 06:36
    Freitag, 23. September 2016 06:34
  • Schau mal hier Link

    Sonst schick mir mal ein Link zur Seite oder den erzeugten HTML Code aus den Browser.

    Es müsste eigentlich eine Form geben die du nur einfach auslösen musst.

    Das geht auch recht einfach, schau hier Link

    Gruß

    Thomas


    Icon für UWP: https://www.microsoft.com/store/apps/9nblggh5fzpm

    • Als Antwort markiert MSchuppe Montag, 26. September 2016 10:44
    Freitag, 23. September 2016 17:51

Alle Antworten

  • Hallo,

    ich denke mal du müsstest Client seitig das Event abfangen und entsprechend weitergeben.

    Das abfangen mit jQuery geht so

    $(document).keypress(function(e) {
        if(e.which == 13) {
            alert('You pressed enter!');
        }
    });

     Gruß

    Thomas


    Icon für UWP: https://www.microsoft.com/store/apps/9nblggh5fzpm

    • Als Antwort markiert MSchuppe Freitag, 23. September 2016 06:33
    Donnerstag, 22. September 2016 22:42
  • Hallo Thomas,

      danke für die Antwort, sie hat mich auf die richtige Fährte gebracht, so habe ich's jetzt gelöst:

      $(document).keypress(function (ev)
      {
        if (ev.which == 13)
        {
          ev.preventDefault();
          $find('<%=ReportViewer1.ClientID%>').refreshReport();
        }
      });
    

    Gruß,

    Matthias

    • Als Antwort markiert MSchuppe Freitag, 23. September 2016 06:36
    Freitag, 23. September 2016 06:34
  • Hallo nochmal,

      ganz es es noch nicht das, was ich wollte. Durch "refreshReport();" wird der Report zwar aktualisiert, aber wenn in der Zwischenzeit Parameter verändert wurden (der Parameter-Bereich ist sichtbar), wird dies nicht berücksichtigt. Ich muss dann wohl die [Enter]-Taste einfach abfangen, die User müssen dann eben immer auf "View Report" klicken. Superschön wäre natürlich, wenn noch jemand einen Tipp für mich hätte, wie ich in der ReportViewer-Komponente den Mausklick auf "View Report" von JavaScript aus anstoßen könnte.

    Gruß,

    Matthias

    Freitag, 23. September 2016 10:56
  • Schau mal hier Link

    Sonst schick mir mal ein Link zur Seite oder den erzeugten HTML Code aus den Browser.

    Es müsste eigentlich eine Form geben die du nur einfach auslösen musst.

    Das geht auch recht einfach, schau hier Link

    Gruß

    Thomas


    Icon für UWP: https://www.microsoft.com/store/apps/9nblggh5fzpm

    • Als Antwort markiert MSchuppe Montag, 26. September 2016 10:44
    Freitag, 23. September 2016 17:51
  • Hallo Thomas,

      vielen Dank für die Hilfe! Auf das einfachste kommt man manchmal erst ganz zuletzt...  Den Logoff-Button habe ich einfach vom "asp:Button" geändert zu "asp:LinkButton". So interessiert ihn die [Enter]-Taste nicht mehr und alles ist OK...

    Gruß,

    Matthias

    Montag, 26. September 2016 10:47