响应式Telerik RadHtmlChart
我用的是Telerik RadHtml图表,我需要的图表应该根据屏幕分辨率自动调整大小,如何做到这一点。 我尝试将宽度和高度设置为自动,但这不起作用。我的图表包含在下面的数据列表我的代码块中响应式Telerik RadHtmlChart,telerik,telerik-charting,radhtmlchart,Telerik,Telerik Charting,Radhtmlchart,我用的是Telerik RadHtml图表,我需要的图表应该根据屏幕分辨率自动调整大小,如何做到这一点。 我尝试将宽度和高度设置为自动,但这不起作用。我的图表包含在下面的数据列表我的代码块中 <asp:UpdatePanel ID="pnlContainer" runat="server" UpdateMode="Conditional"> <ContentTemplate> <div id="wrapper
<asp:UpdatePanel ID="pnlContainer" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="wrapper">
<asp:DataList ID="dtlstDashboards" runat="server" RepeatColumns="2" RepeatDirection="Horizontal"
OnItemDataBound="dtlstDashboards_ItemDataBound" Width="100%" DataKeyField="DashboardID">
<ItemTemplate>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left">
<telerik:RadHtmlChart runat="server" ID="chrtCntrl" Width="500px" Height="300px" >
<Legend>
<Appearance Position="Bottom">
</Appearance>
</Legend>
<PlotArea>
</PlotArea>
</telerik:RadHtmlChart>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</div>
</ContentTemplate>
</asp:UpdatePanel>
Telerik Controls RadGrid和RadHTMLChart需要在每个按百分比调整大小的容器上设置高度和宽度,以便按百分比调整大小。您必须将高度=100%宽度=100%添加到包含这些项目的所有容器中,一直添加到根 如果图表的维度发生变化(通常在window.resize事件中或代码中的任何其他合适位置),则需要调用图表的repaint()方法:
以下是一个例子:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
html, body, form
{
height: 100%;
margin: 0;
padding: 0;
}
.chartContainer
{
width: 50%;
height: 50%;
border: 2px solid red;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="Scriptmanager1" runat="server" />
<div class="chartContainer">
<telerik:RadHtmlChart runat="server" ID="RadHtmlChart1" Width="100%" Height="100%">
<PlotArea>
<Series>
<telerik:AreaSeries>
<SeriesItems>
<telerik:CategorySeriesItem Y="1" />
<telerik:CategorySeriesItem Y="2" />
<telerik:CategorySeriesItem Y="4" />
<telerik:CategorySeriesItem Y="3" />
</SeriesItems>
</telerik:AreaSeries>
</Series>
</PlotArea>
</telerik:RadHtmlChart>
<script>
function resizeChart() {
//repaint the chart - will play animations
//$find("<%=RadHtmlChart1.ClientID%>").repaint();
//only resizes the chart - will not play animations
$find("<%=RadHtmlChart1.ClientID%>").get_kendoWidget().resize();
}
var TO = false;
$telerik.$(window).resize(function () {
if (TO !== false)
clearTimeout(TO);
TO = setTimeout(resizeChart, 200); //200 is time in miliseconds
});
</script>
</div>
</form>
</body>
</html>
html、正文、表单
{
身高:100%;
保证金:0;
填充:0;
}
.chartContainer
{
宽度:50%;
身高:50%;
边框:2倍纯红;
}
对于HtmlChart,这是不够的。虽然对于HTML来说是正确的,但是HtmlChart需要一些脚本,请参见我的答案。通常,图表是静态的-以Excel为例,如果调整程序窗口的大小,图表不会调整大小。