StrataFrame Forum

Business Object not found on page.

http://forum.strataframe.net/Topic12395.aspx

By gavin.dell - 11/4/2007

Hi all,



I am having a problem using the GridView component and the WebBusinessBindingSource. When I click update or cancel on the grid, I get the message: The business object 'Customers' could not be found on this page.





[InvalidOperationException: The business object 'Customers' could not be found on this page.]

MicroFour.StrataFrame.UI.Web.BasePage.GetBusinessObject(String Name) +150

MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetBusinessObject() +109

MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetView(String viewName) +51

System.Web.UI.DataSourceControl.System.Web.UI.IDataSource.GetView(String viewName) +7

System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +226

System.Web.UI.WebControls.DataBoundControl.GetData() +4

System.Web.UI.WebControls.DataBoundControl.PerformSelect() +57

System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70

System.Web.UI.WebControls.GridView.DataBind() +4

System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82

System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69

System.Web.UI.Control.EnsureChildControls() +87

System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +21

System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +289

System.Web.UI.Page.FindControl(String id) +40

System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +252

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3776



To work from a common ground I have simply taken the C# Web Sample code, added a page (StrataFrame Web Form), dragged on a WebBusinessBindingSource, bound it to the Customers business object, dragged on a grid and bound the grid to the WebBusinessBindingSource. When running the app, if I click the edit on a row and then click either update or cancel, I get the above exception.



There must be something amazingly simple that I am missing here ... Crazy



Please will someone point me in the right direction to resolve this.



Many thanks.



Gavin
By Ivan George Borges - 11/4/2007

Hi Gavin.

Have you inherited the ApplicationBasePage within your new webform?

The ApplicationBasePage is where you should declare all your Business Objects, and your webforms should inherit from it.

Have a look at the Help under "Application" -> "WebForms" -> "ApplicationBasePage Classes"

Hope it helps.

By Trent L. Taylor - 11/5/2007

Just to add to Ivan's comments, when you create a new web form within a StrataFrame website, there is a template that will already inherit off of the ApplicationBasePage.  We sure to use the SF Web Form instead of a standard Web Form:

By gavin.dell - 11/5/2007

Hi guys,



Thanks for the quick responses. I was certain that I'd done that, but have deleted the page and recreated it and the error has gone away! w00t



I hang my head in shame...



Thanks.



Gavin
By Trent L. Taylor - 11/6/2007

LOL...nothing to worry about at all.  I am just glad you got it going! Smile
By gavin.dell - 11/6/2007

Hi there,

It seems that I spoke too soon.   I'm am now attempting to catch the ActiveRowChanged event within an Infragistics WebGrid in order to trigger other changes

in associated controls.   When I bind the grid to a SqlDatasource, this works without a problem, however when I drop a WebBusinessBindingSource

onto the page bound to my business object and with the grid bound to the datasource, any attempts to capture the ActiveRowChange event results

in the same kind of error.   I have redone this within your sample C# web app to check that I wasn't doing something daft, but the behavior is the same:

I don't even have to do anything within the event for this to occur.

The business object 'Customers' could not be found on this page.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The business object 'Customers' could not be found on this page.

Source Error:

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.

Stack Trace:

[InvalidOperationException: The business object 'Customers' could not be found on this page.]
MicroFour.StrataFrame.UI.Web.BasePage.GetBusinessObject(String Name) +150   
MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetBusinessObject() +109   
MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetView(String viewName) +51   
System.Web.UI.DataSourceControl.System.Web.UI.IDataSource.GetView(String viewName) +7   
Infragistics.WebUI.UltraWebGrid.UltraWebGrid.GetDataSourceView() +295   
Infragistics.WebUI.UltraWebGrid.UltraWebGrid.DataBind() +289   
Infragistics.WebUI.UltraWebGrid.UltraWebGrid.LoadPostData(String postDataKey, NameValueCollection values) +4745   
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +408   
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3776
 

Any thoughts?

Many thanks in advance,

Gavin

By Trent L. Taylor - 11/7/2007

Gavin,

Have you downloaded this C# sample (http://forum.strataframe.net/FindPost12344.aspx)?  Because I have run this sample over and over again and it is working just fine.  So first, download this sample, open the solution and press Ctrl+F5.  The sample should run and you should be able to go to the Customers Grid without issue.  If this doesn't work, then there is something else in the mix here.

By gavin.dell - 11/7/2007

Hi there,



Yes I have downloaded the sample - the updated version that includes the WebBindingSource.aspx page. I run the sample, click edit against a record, and then cancel and get my favourite message:



Server Error in '/SampleWebApp - CSharp' Application.

--------------------------------------------------------------------------------



The business object 'Customers' could not be found on this page.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.



Exception Details: System.InvalidOperationException: The business object 'Customers' could not be found on this page.



Source Error:



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.



Stack Trace:





[InvalidOperationException: The business object 'Customers' could not be found on this page.]

MicroFour.StrataFrame.UI.Web.BasePage.GetBusinessObject(String Name) +150

MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetBusinessObject() +109

MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetView(String viewName) +51

System.Web.UI.DataSourceControl.System.Web.UI.IDataSource.GetView(String viewName) +7

System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +226

System.Web.UI.WebControls.DataBoundControl.GetData() +4

System.Web.UI.WebControls.DataBoundControl.PerformSelect() +57

System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70

System.Web.UI.WebControls.GridView.DataBind() +4

System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82

System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69

System.Web.UI.Control.EnsureChildControls() +87

System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +21

System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +289

System.Web.UI.Page.FindControl(String id) +40

System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +252

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3776









--------------------------------------------------------------------------------

Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832



Kind regards,



Gavin
By gavin.dell - 11/13/2007

Hi there,

Any ideas concerning what is amiss here as this is preventing me from using Strataframe for this project? Ermm 

I have tried various things, but unfortunately cannot spend any more time on it - it seems as if the business objects are not ending up in the session?   I can allow a TS session to the machine if poking around on it will help (email me for details).

Kind regards,

Gavin

By StrataFrame Team - 11/19/2007

Sorry for the delay, gavin, we're looking into it. 
By StrataFrame Team - 11/19/2007

I have been unable to make the application fail by clicking the edit on a record and then cancel.  Are you just opening the project within VS and running it, or are you loading it into IIS and launching it through there?

In the meantime, I will add some more try/catches and more descriptive error messages to the GetBusinessObject() method to see if we can't track down where the problem is coming from.

By StrataFrame Team - 11/19/2007

Here's the update for the most recent DLLs with the updated error message.  Give it a try and let me know what you run into.

http://forum.strataframe.net/FindPost12783.aspx

By gavin.dell - 11/19/2007

Hi Ben,

Thanks for your response and the effort that you have gone through in order to assist me.

I re-ran my brief tests (open the updated and installed C# sample projects in VS, run, go to the
Customers Grid, click Edit then Cancel) before updating the assemblies to
confirm that the problem was indeed still there, and obtained the
identical results - Business Object not found on page.

I then updated the assemblies and registered them using gacutil.   I now
cannot get any version of the C# web samples to fail (other than from
InvalidCastExceptions) which is great for me, but doesn't assist either
you or me in knowing what was amiss. Crazy

The only conclusion I can draw from here is that the process of
registering the assemblies has resolved whatever the issue was.   You will
most likely have more insight into what that may mean than I do.

I will now create a small business object library based on our database schema, and see how it
goes.

I hope you are all feeling better.

Thanks again.

Gavin