Autor Beitrag
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 24.03.10 18:47 
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
ausblenden 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
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 24.03.10 19:04 
Das wirst du nur über JS schaffen: element.offsetWidth

_________________
>λ=
danielf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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:
ausblenden 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"/>

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 25.03.10 18:25 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
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.

_________________
>λ=