我想讓我的圖表寬度和高度動態化,但是我無法使其工作。到目前爲止,我嘗試過:爲Asp:Chart控件設置動態大小
我已經在Asp:Panel中設置了圖表,並給出了面板所需的百分比值。
<asp:Panel ID="Panel1" runat="server" Width="90%" Height="40%">
<asp:Chart ID="Chart1" runat="server" CssClass="chart">
<Series>
<asp:Series Name="Series1"></asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1"></asp:ChartArea>
</ChartAreas>
</asp:Chart>
</asp:Panel>
然後我嘗試分配在我的C#代碼
Chart1.Width = Panel1.Width;
Chart1.Height = Panel1.Height;
然而這產生一個異常的那些值的圖表,作爲圖表接收所述百分比值代替的像素的量的。我也試過(int)Panel.Width.Value無濟於事。
我試着用CSS做它,擺弄位置:絕對和其他屬性,但我可以讓它爲面板但不適用於圖表。
任何人都可以啓發我一個簡單的解決方案,不需要進入JQuery等?
編輯:
的的可變值Panel1.Width將輸出90%而Panel1.Width.Value意願出於某種原因輸出(40%和對於Panel1.Height)。
Chart1.Width.Value將不得不由Visual Studio分配的300像素的默認值,因此:
Chart1.Width = new Unit(Chart1.Width.Value * Panel1.Width.Value/100, UnitType.Pixel);
將輸出一樣的,如果我是這樣做:
Chart1.Width = new Unit(300 * 90/100, UnitType.Pixel);
輸出:靜態值爲270px
我需要檢索像素值b y中的比例Panel1.Width,但我想不出這樣做的一種方式,
編輯2:
圖表拉伸位用CSS工作正常,但輸出是有點給人留下深刻印象,所以我想以使JavaScript示例工作,但我有沒有成功......我增加了一個按鈕強制回傳和在Page_Load事件我插入:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (panelWidth.Value != "" && panelHeight.Value != "")
{
Chart1.Visible = true;
Chart1.Width = int.Parse(panelWidth.Value);
Chart1.Height = int.Parse(panelHeight.Value);
}
}
else //Initialize the chart with some sample points
{
Chart1.Series[0].Points.AddXY(1, 1);
Chart1.Series[0].Points.AddXY(1, 2);
Chart1.Series[0].Points.AddXY(2, 1);
Chart1.Series[0].Points.AddXY(2, 2);
Chart1.Series[0].Points.AddXY(3, 1);
Chart1.Series[0].Points.AddXY(3, 2);
}
}
如果我開始頁圖表顯然是不可見,所以我還加了一個按鈕
<asp:Button ID="Button1" runat="server" Text="Button" />
以觸發回傳的形式,它會重新加載頁面,但panelWidth.Value和panelHeight.Value仍爲空。我錯過了什麼嗎?好像我無法觸發javascript代碼:/
什麼當設置'發生寬度=「100%」 HEIGHT =「100%」'到圖表? –
您不能將百分比值設置爲圖表度量,它不會接受任何百分比的寬度或高度 – Innat3
設置圖表的dockstyle填充不工作? – soohoonigan