ASP.NET图表控件:饼图和自定义大小的标签

时间:2009-08-19 20:25:24

标签: asp.net webforms charts

使用the ASP.NET charting controls考虑​​一个饼图。

要求是控制饼图上呈现的文本。目标是限制标签上的字符数。该图表目前绑定到SqlDataSource

alt text http://www.imagechicken.com/uploads/1250716996036841800.png

<asp:Chart ID="myPieChart" runat="server" DataSourceID="myDS">
  <Series>
      <asp:Series ChartArea="myChartArea" Name="Series1" ChartType="Pie" 
                  XValueType="Int32" XValueMember="SomeName" 
                  YValueMembers="SomeNumber">
      </asp:Series>
 </Series>
 <ChartAreas>
     <asp:ChartArea Name="myChartArea">
       <AxisY Title="Number"></AxisY>
       <AxisX Title="Name"></AxisX>
       <Area3DStyle Enable3D="True" Inclination="20" />
     </asp:ChartArea>
 </ChartAreas>
</asp:Chart>

问题 您将如何在<asp:Chart>标记或代码隐藏中指定限制绑定/呈现到饼图的字符数?

3 个答案:

答案 0 :(得分:1)

在SQL语句的数据库层执行此操作。 如果字符超过一定长度(例如15),则只返回前15个字符。

答案 1 :(得分:0)

您可以通过限制输入数据源的字符数来实现此目的。

OR

在SQL过程中,您可以在一定数量的字符后添加省略号(或某些效果)

答案 2 :(得分:0)

我希望有一个特定于ASP.NET图表控件的解决方案。

看不到图表控件的明确答案,是时候转移到源数据了。我对substring列中的名称到自定义长度犹豫不决,因为该sproc正被其他页面上的其他表单元素重用/使用 - gridview

解决方案是在存储过程中的结果集上创建一个名为DisplayName的NEW COLUMN。我没有修改现有的内容,而是简单地添加了一个新列:

SELECT
SomeName 
,COUNT(SomeName) AS SomeNumber
,SUBSTRING(SomeName,0,15) AS DisplayName

在开发,研究,时间和加工成本方面,这不是一个昂贵的解决方案,因此它是一个胜利。大多数情况下,表示层应该处理这些问题,但在这种情况下,当表示层没有明确的解决方案时,更快的解决方案就可以工作。

感谢Russ和waqasahmed!