C# Telerik radChart xaxis数据列未显示

C# Telerik radChart xaxis数据列未显示,c#,asp.net,charts,telerik,datacolumn,C#,Asp.net,Charts,Telerik,Datacolumn,我有一个datatable,我将其添加到foreach循环中的图表中,如下所示,并将dtMonth datarow分配给图表的xaxis,即月份名称: foreach (DataRow dr in dtMD.Rows) { DataTable dtMDByName = ocw.GetMDByName(Convert.ToDateTime(txtStartDate.Text), Convert

我有一个datatable,我将其添加到foreach循环中的图表中,如下所示,并将dtMonth datarow分配给图表的xaxis,即月份名称:

                foreach (DataRow dr in dtMD.Rows)
                {

                    DataTable dtMDByName = ocw.GetMDByName(Convert.ToDateTime(txtStartDate.Text), Convert.ToDateTime(txtEndDate.Text), dr["MD"].ToString());

                    if (dtMDByName.Rows.Count > 0)
                    {
                        ChartSeries MDChartSeries = new ChartSeries();
                        MDChartSeries.Name = dtMDByName.Rows[0][1].ToString();
                        MDChartSeries.Type = ChartSeriesType.Line;

                        foreach (DataRow drByName in dtMDByName.Rows)
                        {
                            MDChartSeries.AddItem(Convert.ToDouble(drByName["T"]));

                            radMD.PlotArea.XAxis.DataLabelsColumn = drByName["dtMonth"].ToString();
                        }

                        radMD.ChartTitle.TextBlock.Text = "MDs";
                        radMD.PlotArea.XAxis.AutoScale = true;
                        radMD.Series.Add(MDChartSeries);

                    }
                }
radMD.PlotArea.XAxis.DataLabelsColumn = "dtMonth";
但它仍然在xaxis中显示为数字,我在上面的代码中有什么地方做错了吗

即使我在第二个循环(即以下代码)之外执行此操作,它仍然不会显示月份名称:

                foreach (DataRow dr in dtMD.Rows)
                {

                    DataTable dtMDByName = ocw.GetMDByName(Convert.ToDateTime(txtStartDate.Text), Convert.ToDateTime(txtEndDate.Text), dr["MD"].ToString());

                    if (dtMDByName.Rows.Count > 0)
                    {
                        ChartSeries MDChartSeries = new ChartSeries();
                        MDChartSeries.Name = dtMDByName.Rows[0][1].ToString();
                        MDChartSeries.Type = ChartSeriesType.Line;

                        foreach (DataRow drByName in dtMDByName.Rows)
                        {
                            MDChartSeries.AddItem(Convert.ToDouble(drByName["T"]));

                            radMD.PlotArea.XAxis.DataLabelsColumn = drByName["dtMonth"].ToString();
                        }

                        radMD.ChartTitle.TextBlock.Text = "MDs";
                        radMD.PlotArea.XAxis.AutoScale = true;
                        radMD.Series.Add(MDChartSeries);

                    }
                }
radMD.PlotArea.XAxis.DataLabelsColumn = "dtMonth";

感谢您发现您需要将自动缩放设置为false,然后添加文本块,如下所示:

                              radMD.PlotArea.XAxis.AutoScale = true;
                                for (int i = 0; i < dtMDByName.Rows.Count; i++)
                                {
                                    radMD.PlotArea.XAxis[i].TextBlock.Text = dtMDByName.Rows[i][3].ToString();
                                }
radMD.PlotArea.XAxis.AutoScale=true;
对于(int i=0;i
我也遇到了同样的问题,我先尝试了您的解决方案,它工作正常,现在它给了我空引用异常,我不知道为什么会这样:/在分配XAxis Textblock检查行的null/count之前。很抱歉,它的索引超出范围异常:/yes相同的事情首先检查行的计数,因为您正在使用第三列,如果它不退出,您将获得该异常值,我可以看到它们,但它仍会引发此异常。。让我和你分享这个问题