2012-10-19 99 views
0

我有一個問題,我的RadChart加載本地完美,但我部署後它只是繼續加載,但不運行。我沒有看到實際的圖表屏幕。Telerik RadChart不斷加載

我在整個過程之後放置了一個消息框,並且此消息框顯示出來,所以我確信已到達代碼的末尾。我只是不知道爲什麼屏幕沒有完成加載。

任何想法?

代碼:

protected void btnSearch_OnClick(object sender, ImageClickEventArgs e) { 

      try 
      { 

       RadChartPOByFactory.Chart.Series.RemoveSeries(); 

       RadChartPOByFactory.ClientSettings.ScrollMode = Telerik.Web.UI.ChartClientScrollMode.Both; 

       RadChartPOByFactory.DataManager.ValuesXColumn = "FactoryID"; 
       RadChartPOByFactory.DataManager.ValuesYColumns = new String[] { "Value" }; 
       RadChartPOByFactory.DataGroupColumn = "Year"; 
       RadChartPOByFactory.PlotArea.XAxis.DataLabelsColumn = "Factory"; 
       RadChartPOByFactory.Legend.Appearance.GroupNameFormat = "#VALUE"; 

       RadChartPOByFactory.PlotArea.YAxis.Appearance.CustomFormat = "$#,##0,,.00M;;K"; 

       var poReportRawData = from r in report.GetPOHeader_POByFactory_Report(ddlYearFrom.SelectedValue, ddlYearTo.SelectedValue) 
             select new { 
              Year = r.Year.ToString(), 
              Factory = r.Factory, 
              Value = r.AmountWithDiscount.Value }; 

       var factoryRawIDs = (from f in poReportRawData select f.Factory).Distinct(); 
       List<ListItem> factoryIDs = new List<ListItem>(); 
       int i = 1; 
       foreach (string s in factoryRawIDs.ToList()) 
       { 
        factoryIDs.Add(new ListItem(s, i.ToString())); 
        i++; 
       } 

       var poReportData = from po in poReportRawData.ToList() 
            select new { 
             Year = po.Year, 
             FactoryID = factoryIDs.Where(f => f.Text == po.Factory).FirstOrDefault().Value, 
             Value = po.Value, 
             Factory = po.Factory }; 

       RadChartPOByFactory.DataSource = poReportData.ToList(); 
       RadChartPOByFactory.DataBind(); 

       foreach (ChartSeries cs in RadChartPOByFactory.Series) 
       { 
        cs.DefaultLabelValue = "$#Y{#,##0,}K (#%{#0.###%})"; 

        cs.Appearance.LabelAppearance.LabelLocation = StyleSeriesItemLabel.ItemLabelLocation.Inside; 
        cs.Appearance.LabelAppearance.Position.AlignedPosition = AlignedPositions.Center; 
        cs.Appearance.LabelAppearance.RotationAngle = 0; 

       } 

       RadChartPOByFactory.Visible = true; 
      } 
      catch(ExceptionHandler ex) 
      { 
       WriteJSHandledException(ex); 
      } 

     } 

而這種代碼也運行:

protected void RadChartPOByFactory_OnBeforeLayout(object sender, System.EventArgs e) { 

      foreach (Telerik.Charting.LabelItem RadChartLegendLabelItem in RadChartPOByFactory.Legend.Items.OrderBy(a=>a.Name)) { 
       //Remove the top-most item (which then decrements the item count of the legend) 
       RadChartPOByFactory.Legend.Items.RemoveAt(0); 
       //Insert the new (reversed) legend item at the end of the list 
       RadChartPOByFactory.Legend.Items.Insert(RadChartPOByFactory.Legend.Items.Count, RadChartLegendLabelItem); 
      } 


      foreach (Telerik.Charting.ChartSeries RadChartSerie in RadChartPOByFactory.Chart.Series.OrderBy(a => a.Name)) { 

       RadChartSerie.Items.OrderBy(a => a.Parent.Name); 

       //Remove the top-most item (which then decrements the item count of the legend) 
       RadChartPOByFactory.Chart.Series.RemoveAt(0); 
       //Insert the new (reversed) legend item at the end of the list 
       RadChartPOByFactory.Chart.Series.Insert(RadChartPOByFactory.Chart.Series.Count, RadChartSerie); 

      } 

      foreach (Telerik.Charting.ChartSeries RadChartSerie in RadChartPOByFactory.Chart.Series.OrderBy(a => a.Name)) { 

       foreach (ChartSeriesItem RadChartSerieItem in RadChartSerie.Items.OrderBy(b => b.Name)) { 
        //Remove the top-most item (which then decrements the item count of the legend) 
        RadChartSerie.Items.RemoveAt(0); 
        //Insert the new (reversed) legend item at the end of the list 

        string tmpTextBlock = RadChartSerieItem.Label.TextBlock.Text; 
        string[] toMillion = tmpTextBlock.Split(' '); 

        string tmpValue = toMillion[0].Substring(1, toMillion[0].Length - 2); 
        decimal tmpInt = decimal.Parse(tmpValue); 

        if (tmpInt >= 1000) { 
         RadChartSerieItem.Label.TextBlock.Text = tmpInt.ToString("$#,##0,.00M") + " " + toMillion[1]; 
        } 

        RadChartSerie.Items.Insert(RadChartSerie.Items.Count, RadChartSerieItem); 
       } 

      }    
     } 

回答

2

如果你不能看到頁面上顯示的chart imagecheck to see如果你有registered the correct version of the HTTP HandlerWeb.Config或添加在設計時通過智能標籤設計一個HTTP Handler

需要manually register the RadControls "HttpHandlers"或使用IIS administration功能。爲HTTP Handlers點擊HERE

+1

是,它必須既處理程序被註冊(In web.config file)

<system.web> … <httpHandlers> … <add path="Telerik.Web.UI.DialogHandler.aspx" verb="*" type="Telerik.Web.UI.DialogHandler, Telerik.Web.UI" validate="false" /> … </httpHandlers> </system.web> <system.webServer> <handlers> … </handlers> </system.webServer> 

有關手動寄存器或IIS7功能的更多詳細信息: 的manual registration完成下面的方式。 –