2016-04-14 9 views
0

In Lightswitch html, wenn ein div auf Zeilen Layout hinzufügen, i die Breite des div als 0.Breite für Row-Layout ist Null auf Lichtschalter html

myapp.Home.Group_postRender=function (element, contentItem) {  
    var div = $("<div></div>").attr('id', "container")  
    div.appendTo($(element)); 
} 

Ich erhalte Breite für die div "bin immer container ", als null und auch ich habe das Elternteil für dieses div, $(". msls-ctl-rows-layout"), überprüft, dessen Breite auch Null ist. Aber nach dem Rendern beträgt die Breite für rowslayout 439px in dom. Wie bekomme ich diese Standardbreite beim Rendern in meinen Container?

Hinweis: Sizing für das Zeilen-Layout ist „Strech to Container

+0

Es gibt keine, was Sie Breite von Null bezeichnet. Überprüfen Sie Ihr CSS und fügen ' ' innerhalb Ihres 'div' hinzu, das' '' ("

 
") ' – SaidbakR

+0

' $ 'ist für jquery Recht? Normalerweise ist der Div-Selektor nur '$ (' div ') 'für div-Elemente und für Klasse ist es' $ ('. msls-ctl-rows-layout ') 'ohne Leerzeichen zwischen – Lulylulu

+0

@Jaya Hat meine vorgeschlagene Antwort dazu beigetragen eine Lösung anbieten? –

Antwort

0

An der Stelle, die postRender Methode Brände haben Light parametrisches Layout noch stattfinden. Daher ist die Breite Ihrer Gruppe Zeilenlayout immer noch Null.

Wenn Sie jedoch Ihren Code verzögern, bis LightSwitch das parametrische Layout abgeschlossen hat, können Sie weiterhin auf die Breite in Ihrer postRender-Funktion zugreifen. Dies kann durch Verwendung der jQuery Mobile pagechange event (als Light HTML-Client verwendet jQuery mobile) wie folgt erreicht werden:

myapp.Home.Group_postRender = function (element, contentItem) { 
    var div = $("<div></div>").attr('id', "container") 
    div.appendTo($(element)); 

    $(window).one("pagechange", function (e, navigationData) { 
     alert($(element).width()); 
    }); 
};