【问题标题】:ASP.NET chart control: pie chart and custom sized labelsASP.NET 图表控件:饼图和自定义大小的标签
【发布时间】:2009-08-19 20:25:24
【问题描述】:

考虑使用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>

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

【问题讨论】:

    标签: asp.net webforms charts


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以通过限制输入数据源的字符数来做到这一点。

      在您的 SQL 过程中,您可以在一定数量的字符之后添加省略号(或类似的东西)

      【讨论】:

        【解决方案3】:

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

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

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

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

        就开发、研究、时间和处理成本而言,这不是一个昂贵的解决方案,所以这是一个胜利。大多数情况下,表示层应该处理这些问题,但在这种情况下,当表示层没有明确的解决方案时,更快的解决方案会起作用。

        感谢 Russ 和 waqasahmed!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多