代码之家  ›  专栏  ›  技术社区  ›  p.campbell

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

  •  1
  • p.campbell  · 技术社区  · 15 年前

    考虑使用饼图 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 回复  |  直到 15 年前
        1
  •  1
  •   waqasahmed    15 年前

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

        2
  •  0
  •   Russ Bradberry    15 年前

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

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

        3
  •  0
  •   p.campbell    15 年前

    我希望有一个针对ASP.NET图表控件的解决方案。

    由于图表控件没有明确的答案,是时候转移到源数据了。我犹豫了一下 substring 从列到自定义长度的名称,因为该存储过程正被其他页上的其他表单元素重用/使用-a gridview .

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

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

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

    感谢Russ和Waqasahmed!