我创建了一个自定义复合控件,其中包含来自此项目https://googlevisnet.codeplex.com/的子控件(它是我为各种时间检查过的谷歌图表的.NET库)。我正在使用VisualStudio 2012和一个简单的C#类库。
我重写CreateChildControl,如下所示:
protected override void CreateChildControls()
{
Controls.Clear();
//create the pie control
GenderChart = new GVPieChart();
GenderChart.Width = PieChartDimentions[0];
GenderChart.Height = PieChartDimentions[1];
GenderChart.ChartData(GenderDistributionTable);
//create the bar control
AgeChart = new GVColumnChart();
AgeChart.Width = BarChartDimentions[0];
AgeChart.Height = BarChartDimentions[1];
AgeChart.ChartData(AgeDistributionTable);
this.Controls.Add(GenderChart);
this.Controls.Add(AgeChart);
}
并覆盖Render,如下所示:
AgeChart.RenderControl(output);
当我在页面上运行代码时,一切似乎都有效,我可以告诉控件正确地渲染了区域(我可以看到具有特定大小的div),但是我没有看到图表本身。
奇怪的是,有一段时间它正在工作,然后再次停止,而我没有对代码进行任何更改。
任何想法?
答案 0 :(得分:2)
显然解决问题的方法就像添加控件的ID一样愚蠢。 protected override void CreateChildControls() { Controls.Clear();
//create the pie control
GenderChart = new GVPieChart();
GenderChart.ID = "genderChar";
GenderChart.Width = PieChartDimentions[0];
GenderChart.Height = PieChartDimentions[1];
GenderChart.ChartData(GenderDistributionTable);
////create the bar control
AgeChart = new GVColumnChart();
AgeChart.ID = "ageChart";
AgeChart.Width = BarChartDimentions[0];
AgeChart.Height = BarChartDimentions[1];
AgeChart.ChartData(AgeDistributionTable);
this.Controls.Add(GenderChart);
this.Controls.Add(AgeChart);
}
我不知道我是怎么忘记像ID一样重要的东西。我们的思想在某些时候停止思考简单。
干杯:)