使用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>
标记或代码隐藏中指定限制绑定/呈现到饼图的字符数?
答案 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!