An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of the
exception can be identified using the exception stack trace below.
|
[InvalidOperationException: Script controls may not be registered before PreRender.] |
Please follow the code below.
I'm trying to generate a chart using the WebMethod and try to send the response (either the whole rendered output of RadChart or just the ChartImage.axd url) as a repsonse in an Ajax method.
How can I achieve? Or is this undoable?
| [System.Web.Services.WebMethod()] |
| public static string GetChart1() |
| { |
| Telerik.Web.UI.RadChart chart = new Telerik.Web.UI.RadChart(); |
| chart.ChartTitle.TextBlock.Text = "My title"; |
| chart.DefaultType = ChartSeriesType.Line; |
| chart.Appearance.ImageQuality = Telerik.Charting.Styles.ImageQuality.HighQuality; |
| ChartSeries data1 = new ChartSeries("Page Views", ChartSeriesType.Line); |
| data1.AddItem(100); |
| data1.AddItem(25); |
| data1.AddItem(500); |
| data1.AddItem(1000); |
| data1.AddItem(5000); |
| ChartSeries data2 = new ChartSeries("Hits", ChartSeriesType.Line); |
| data2.AddItem(50); |
| data2.AddItem(100); |
| data2.AddItem(300); |
| data2.AddItem(2000); |
| data2.AddItem(4000); |
| chart.Series.Add(data1); |
| chart.Series.Add(data2); |
| //determine the output |
| } |
| <script type="text/javascript"> |
| function CreateChart1() |
| { |
| PageMethods.GetChart1(Chart1Render, OnFailure); |
| } |
| function Chart1Render(res) |
| { |
| $get("chart1").innerHTML = res; |
| } |
| function OnFailure(res) |
| { |
| alert(res); |
| } |
| </script> |
[NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.]
Telerik.Web.UI.GridEditFormItem.CellsDataBound(GridColumn[] columns) +183
Telerik.Web.UI.GridEditFormItem.SetupItem(Boolean dataBind, Object dataItem, GridColumn[] columns, ControlCollection rows) +312
Telerik.Web.UI.GridItemBuilder.CreateItems(GridGroupingContext group) +861
Telerik.Web.UI.GridTableView.CreateItems(IEnumerator enumerator, GridColumn[] columns, ControlCollection controls) +167
Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource) +890
Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +532
System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +59
System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +111
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +29
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
Telerik.Web.UI.GridTableView.PerformSelect() +23
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
Telerik.Web.UI.GridTableView.DataBind() +321
Telerik.Web.UI.GridTableView.Rebind() +79
Telerik.Web.UI.GridCommandEventArgs.ExecuteCommand(Object source) +361
Telerik.Web.UI.RadGrid.OnBubbleEvent(Object source, EventArgs e) +171
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +35
Telerik.Web.UI.GridItem.OnBubbleEvent(Object source, EventArgs e) +147
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +35
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +115
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +132
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +177
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746First bug:
node.set_visible(false); //STILL DOESN'T WORK! You have to do this:
node.get_element().style.display='none';
Second bug:
//If you set text containing "?" or ")" or "(" (and probably other characters too)
node.set_text("Why Us? (Part 1)");
//...then later change the text, it DOESN'T WORK:
node.set_text("abc");
//You have to do this:
node.get_textElement().innerHTML = "abc"
//but then renaming the node by clicking on it twice does not work as expected..
If I have to stuff around with regular element.innerHTML and element.style.display Javascript functions, what's the point of using your controls?
Regards,
Nuri