2015-10-08 4 views
2

Кто-нибудь знает, как я могу установить ширину диаграммы до 70% контейнера? Я уже установил мою ширину контейнера на 100%, как это: container.Width = Unit.Percentage(100);Установить ширину диаграммы до 70%

Это мои коды:

    Chart Chart1= new Chart(); 
        Chart1.DataSource = dt; 
        Chart1.Width = 800; 
        Chart1.Height = 490;     

        Chart1.Series.Add(new Series()); 
        Chart1.Series[0].ChartType = SeriesChartType.BoxPlot; 
        List<object> List1 = dt.AsEnumerable().ToList<object>(); 

        foreach (DataRow row in dt.Rows) 
         Chart1.Series[0].Points.AddXY(row["STATUS"], new object[] { row["MIN"], row["MAX"], row["25THPERCENTILE"], row["75THPERCENTILE"], row["AVG"], row["50THPRECENTILE"] }); 

        //create chartareas 
        ChartArea ca = new ChartArea(); 
        ca.AxisX = new Axis(); 
        ca.AxisX.MajorGrid.Enabled = false; 
        ca.AxisY = new Axis(); 
        ca.AxisY.MajorGrid.Enabled = false; 
        Chart1.ChartAreas.Add(ca); 

        //databind 
        Chart1.DataBind(); 
        Chart1.Visible = true; 

        panel.Controls.Add(Chart1); 

Теперь в настоящее время ширина диаграммы устанавливается на пиксель. Я хотел бы, чтобы ширина диаграммы была установлена ​​равной процентам.

Вопрос: Как я могу установить ширину диаграммы до 70%?

+1

70% от того, что является его 70% of'800' или это 70% от страницы, контейнера и т.д.? –

+0

hi @Spencer Wieczorek, составляет 70% от контейнера. Я уже установил ширину контейнера на 100%. Например: container.Width = Unit.Percentage (100) ;, отредактировал мой вопрос спасибо! –

+0

, если вы можете получить размер контейнера, как насчет выполнения вычислений: 'Chart1.Width = (0.70 * container.Width)' –

ответ

1

Видимо Chart управление принимает только UnitType.Pixel.

Это прекрасно работает:

Unit unit1 = new Unit(70, UnitType.Pixel); 
Chart1.Width = unit1; 

Но это,

Unit unit2 = new Unit(70, UnitType.Percentage); 
Chart1.Width = unit2; 

Выдает исключение:

System.ArgumentException was unhandled by user code HResult=-2147024809 Message=Chart width MUST be set in pixels. Source=System.Web.DataVisualization StackTrace: at System.Web.UI.DataVisualization.Charting.Chart.set_Width(Unit value) at WebApplication63.WebForm1.Page_Load(Object sender, EventArgs e) in C:\Users\WebApplication63\WebApplication63\WebForm1.aspx.cs:line 16 at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) InnerException:

+0

hi jstreet, это означает, что я могу установить ширину диаграммы только в пикселях? нет способа установить ширину диаграммы в процентах? спасибо за ваш ответ и помощь! –

+0

@FeliciaSoh, привет, к сожалению, это то, что кажется ... сообщение об исключении не может быть более ясным. – jsanalytics

+0

привет @jstreet, хорошо понял, спасибо за объяснение! –

0

не могли бы вы указать на стороне клиента идентификатор диаграммы и указать ширину с помощью css?

<asp:Chart ID="myChart" runat="server" ClientIDMode="Static"> 

И тогда в вашем CSS:

#myChart{ 
    width:70%; 
}