首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RadHTMLChart在加载子序列页后呈现未定义的YAxis

RadHTMLChart在加载子序列页后呈现未定义的YAxis
EN

Stack Overflow用户
提问于 2015-03-06 21:06:40
回答 1查看 254关注 0票数 0

我有一个Telerik RadHTMLChart,我通过一个模型呈现它,该模型由一个SQLCommand填充。在最初的负载下,一切都很好。网格呈现,它看起来就像Telerik控件所能看到的一样好。但是,在第二个页面加载时,例如我单击第2页或第3页,网格将在顶部填充读取未定义的YAXIS。然后YAXIS数据呈现在底部。我已经调试了这个,在网上找不到任何关于这个的东西。这是我的密码。假设我的SQL查询很棒,而且工作得很好,因为相信我,它确实很好。

代码语言:javascript
运行
复制
 For Each recordAboutUserRoles In usageData
                If recordAboutUserRoles.usageCount <> 0 Then
                    Dim barz As New BarSeries
                    barz.Spacing = 0.4
                    barz.SeriesItems.Add(recordAboutUserRoles.usageCount, colorTheme.MainThemeColorLightened)
                    usageGraphByRole.PlotArea.Series.Add(barz)
                    i += 1
                End If
            Next

将数据分配给这里的模型

代码语言:javascript
运行
复制
Private Function AssignData(ByVal data As SqlCommand) As List(Of RolesByUsageModel)
    Dim result As SqlDataReader = data.ExecuteReader
    Dim rolesByUsageModelList As New List(Of RolesByUsageModel)

    While result.Read
        Dim rolesByUsageModel As New RolesByUsageModel
        rolesByUsageModel.usageCount = result.GetValue(0)
        rolesByUsageModel.roleName = result.GetValue(1)
        rolesByUsageModel.pageDefPageName = result.GetValue(2)
        rolesByUsageModel.pathUrl = result.GetValue(3)
        rolesByUsageModel.usageDetPageName = result.GetValue(4)
        rolesByUsageModelList.Add(rolesByUsageModel)
    End While

    Return rolesByUsageModelList

End Function

这是我的WebForm标记。AxnData:Axn图表是专有的品牌。它只是Telerik RadHtmlChart的一个包装器。除了控件名称之外,没有什么不同。

代码语言:javascript
运行
复制
<AxnData:AxnChart ID="usageGraphByRole" runat="server">
                                        <PlotArea>
                                            <Series>
                                                <telerik:BarSeries>

                                                </telerik:BarSeries>
                                            </Series>
                                        </PlotArea>
                                        <Legend>
                                            <Appearance Visible="false"></Appearance>
                                        </Legend>
                                        <ChartTitle Text="Usage By Role"></ChartTitle>
                                    </AxnData:AxnChart>

这是图表在初始负载时的样子。

子序列加载后的图表。

当我检查DevTools中的元素时,图表左边的"d“实际上是未定义的。我已经尝试给每个轴项目一个名称,但这似乎不起作用。

有人遇到过这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-11 13:52:28

总之,这一切都是错误的。假设usageGraph在Page_Load上被调用。然后调用DataBound事件。在DataBound事件中,在循环之外声明ChartSeries对象,并在循环中实例化一个新的图表系列项,并添加到ChartSeries对象中。

重要的部分是在DataBound事件中保留所有的数据分配。

代码语言:javascript
运行
复制
Private Sub usageGraph()

        usageGraphByRole.PlotArea.YAxis.LabelsAppearance.Visible = True
        usageGraphByRole.DataSource = AssignData()
        usageGraphByRole.DataBind()

    End Sub

私有子usageGraphByRole_DataBound(发送方作为对象,e作为EventArgs)处理usageGraphByRole.DataBound usageGraphByRole.PlotArea.Series.Clear()

代码语言:javascript
运行
复制
        Dim barz As New BarSeries()
        barz.Name = "Usage By Roles"
        'barz.LabelsAppearance.Visible = False
        barz.TooltipsAppearance.DataFormatString = "{0} Usage Count, {1}"

        For Each recordAboutUserRoles In AssignData()
            If recordAboutUserRoles.usageCount <> 0 Then
                Dim usageDataItem As New SeriesItem()

                usageDataItem.YValue = recordAboutUserRoles.usageCount

                barz.Items.Add(usageDataItem)

            End If
        Next

        usageGraphByRole.PlotArea.Series.Add(barz)

    End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28907663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档