2016-05-26 13 views
0
function showImageFn(imgID,frmPanelPicture) {                            
    var myMask = new Ext.LoadMask(Ext.getCmp('frmPanelPicture').el{msg:'Loading'}); //showing error 

    var myMask = new Ext.LoadMask(frmPanelPicture, {msg:"Loading..."}); //showing error                     
    loadMask.show(); 
    ShowPicMethod.ShowImage(imgID) 
}; 

Zeigt JavaScript-Laufzeitfehler:Wie man Ext.net setzt Laden Maske in Fenster/Panel-Steuerung mit JavaScript-Funktion?

'frmPanelPicture' is undefined

Aber Wenn ich den folgenden Codeausschnitt:

Ext.getBody().mask("Loading..."); //it's work fine 

Aber es ist Arbeiten an Loch Körper, aber ich will das nicht, ich will nur die Fenster-/Plattensteuerung nicht für den Lochkörper/die Seite zu laden. Bitte helfen Sie mir. Danke im Voraus.

Antwort

0

Die Maskierung gilt immer für den Körper eines beliebigen Elements. Also müssen wir den Körper mit Ext.getCmp("frmPanelPicture").getBody() herausfinden und dann Maskierung anwenden, wie unten

var myMask = new Ext.LoadMask(Ext.getCmp("frmPanelPicture").getBody(), {msg:"Loading..."}); 
myMask.show(); 

versuchen, diesen

+0

Können Sie bitte mehr Ihre Antwort ausarbeiten, indem Sie ein wenig mehr Beschreibung der von Ihnen bereitgestellten Lösung hinzufügen? – abarisone

+0

@abarisone: Jetzt ist es richtig? –

0

Sie versucht, das Element zu finden genannt ‚frmPanelPicture‘. Wenn Sie IDMode = Static nicht verwenden, wird das Element nicht zum DOM hinzugefügt. Als 'frmPanelPicture' wird es App.frmPanelPicture sein.

In Chrom drücken Sie F12 und gehen Sie zur Konsole, tippen Sie "App." und überprüfen Sie, wie Ext.NET alle Ihre Elemente strukturiert hat. Ihr Panel wird etwa wie App.frmPanelPicture oder App.ctl00_mainContent_frmPanelPicture benannt.

Auf der anderen Seite haben die Ext.NET-Leute einen tollen Job gemacht, wenn sie voraussehen, wo Sie eine Maske brauchen. Sie können die gewünschte Maske in den meisten Fällen erstellen. Vielleicht haben Sie diese nativen Optionen bereits ausgeschöpft, bevor Sie Ihre eigenen Skripte erstellen.

<ext:Panel ID="Panel1" runat="server" Height="300" Title="Title" IDMode="Static"> 
    <Buttons> 
     <ext:Button ID="Button1" runat="server"> 
      <DirectEvents> 
       <Click OnEvent="Button1_Click"> 
        <EventMask Msg="loading..." CustomTarget="#{Panel1}" Target="CustomTarget"> 
        </EventMask> 
       </Click> 
      </DirectEvents> 
     </ext:Button> 
    </Buttons>