Entwickler-Ecke
ASP.NET und Web - Width eines Panels abfragen
danielf - Mi 24.03.10 18:47
Titel: Width eines Panels abfragen
So, schon wieder ASP, schon wieder ich ...
Und zwar verwende ich das Chart Control um ein Chart darzustellen. Diesem Chart muss man eine Höhe und Breite mitgeben, anhand von der er ein Bilder dieser Größe generiert. Da ich dies aber nicht fest in den Code reinschreiben möchte, dachte ich mir, ich pack das Chart in ein Panel. Dieses Panel weiß ich wiederum eine CSS-Klasse hinzu in der die Höhe und Breite definiert wird. Soweit die Theorie... in der Praxis habe ich aber das Problem, dass ich nicht auf die Werte von dem Css-Klasse zugreifen kann. Ich bräuchte etwas
C#-Quelltext
1: 2:
| chart1.Width = (int) ((Panel) Parent).Width.Value; chart1.Height = (int) ((Panel) Parent).Width.Height; |
Leider waren meine Versuche und die Internetsuche erfolglos.
Ich habe es über:
1) .Style
2) .Width
3) .Attributes
4) .ControlStyle.Width
versucht :/
Danke & Gruß
Daniel
danielf - Do 25.03.10 15:47
Das hatte ich fast befurchtet... Leider kenne ich mich mit JavaScript noch gar nicht aus. Mache auch erst seit kurzem Web-Entwicklung mit ASP.NET.
Jedenfals habe ich mir die Seite ganz genau angeschaut, bin aber daraus nicht schlau geworden. Mir ist unklar, wie die Bibliotheken eingebunden und benutzt werden. Deshalb habe ich den JavaScript-Ansatz verfolgt und daraufhin folgende Lösung umgesetzt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <script type="text/javascript" language="javascript"> function setchartsize(chartPanelId, chartWidthId, chartHeightId) { var panel = document.getElementById(chartPanelId); document.getElementById(chartWidthId).value = panel.clientWidth; document.getElementById(chartHeightId).value = panel.clientHeight; } </script> ... <asp:Button ID="bUpdate" runat="server" Height="40px" OnClick="bUpdateChart_Click" Text="Update" Position="relative"/> |
C#-Quelltext
1: 2: 3: 4: 5: 6:
| bUpdate.Attributes.Add( "onclick", string.Format("setchartsize('{0}', '{1}','{2}')", chartCssPanel.ClientID, chartWidth.ClientID, chartHeight.ClientID)); |
In dieser Konstellation wird dann zuerst das JavaScript ausgeführt und dann die CallBack Methode - wie ich es haben will :) (Leider muss ich den Umweg über die zwei chartWidth/chartHeight input Tags gehen, vlt. hat da ja noch jemand eine Idee. Über ein spezielles PostBack mit Event Args habe ich es nicht hinbekommen)
Ist das so "korrekt"?
Kha - Do 25.03.10 18:25
danielf hat folgendes geschrieben : |
Mir ist unklar, wie die Bibliotheken eingebunden und benutzt werden. |
Welche Bibliotheken :gruebel: ?
Unter MVC würde ich über jQuerys ajax-Funktion eine gewöhnliche GET-Abfrage absetzen. Mit dem Monster Webforms kenne ich mich überhaupt nicht aus.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!