DevExpress asp.net controls

Posts   
 
    
methodman
User
Posts: 194
Joined: 24-Aug-2009
# Posted on: 26-Aug-2009 14:44:56   

Hello,

i'm considering buying LLBLGen pro but i'd like to use DevExpress controls in my UI and their report tool. I've already read a thread about this topic http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=13297, where was this issue with binding a LLBLGenprodatasource to a AspxGridview. Hence, did they solve the issue ?

Because i've tryed to bind LLBLGenprodatasource2 with AspxGridview but the datasource seems not doing any paging. The sql select in the output was just "select * from mytable". Well,this is not acceptable for tables with many records.

This is my code:


<dxwgv:ASPxGridView ID="ASPxGridView1" runat="server"
        DataSourceID="LLBLGenProDataSource21" Width="291px" KeyFieldName="Id">
        <SettingsBehavior AllowFocusedRow="True" />
        <SettingsPager AlwaysShowPager="True">
        </SettingsPager>
        <Settings ShowFilterRow="True" ShowGroupPanel="True" />
    </dxwgv:ASPxGridView>

<llblgenpro:LLBLGenProDataSource2 ID="LLBLGenProDataSource21" runat="server" 
        AdapterTypeName="AutaNamespace.DatabaseSpecific.DataAccessAdapter, AutaNamespaceDBSpecific" 
        DataContainerType="EntityCollection" EnablePaging="True" 
        EntityFactoryTypeName="AutaNamespace.FactoryClasses.PoruchaEntityFactory, AutaNamespace" 
        AllFieldsKeepEmptyStringAsValue="True">
    </llblgenpro:LLBLGenProDataSource2>

I've also tryed their LinqServerModeDataSource but an error come up,it said:

No DataAccessAdapter instance set on LLBLGenProProvider2 instance. Can't execute query

and stact trace:

[ORMQueryExecutionException: No DataAccessAdapter instance set on LLBLGenProProvider2 instance. Can't execute query]
   SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProProvider2.ExecuteValueListProjection(QueryExpression toExecute) +156
   SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProProviderBase.ExecuteExpression(Expression handledExpression) +609
   SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProProviderBase.Execute(Expression expression) +63
   SD.LLBLGen.Pro.LinqSupportClasses.LLBLGenProProviderBase.System.Linq.IQueryProvider.Execute(Expression expression) +41
   DevExpress.Data.Linq.Helpers.CriteriaToQueryableExtender.Count(IQueryable src) +226
   DevExpress.Data.Linq.Helpers.LinqServerModeCache.CreateTopGroupInfo() +256

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   DevExpress.Data.Linq.LinqServerModeWebFrontEndOwner.Crash(Exception e) +57
   DevExpress.Data.Linq.Helpers.LinqServerModeCache.CrashLanding(Exception e) +82
   DevExpress.Data.Linq.Helpers.LinqServerModeCache.CreateTopGroupInfo() +960
   DevExpress.Data.Linq.Helpers.LinqServerModeCache.get_TotalGroupInfo() +46
   DevExpress.Data.Linq.Helpers.LinqServerModeCache.Count() +31
   DevExpress.Data.Linq.Helpers.LinqServerModeWrapper.get_Count() +45
   DevExpress.Data.Linq.Helpers.LinqServerModeFrontEnd.get_Count() +43
   DevExpress.Data.Helpers.BaseDataControllerHelper.get_Count() +59
   DevExpress.Data.DataControllerBase.get_ListSourceRowCount() +65
   DevExpress.Data.DataController.get_VisibleListSourceRowCount() +36
   DevExpress.Data.DataController.get_VisibleCount() +96
   DevExpress.Data.Helpers.GroupedRowsKeeperEx.GetAllRecordsSelected() +44
   DevExpress.Data.Helpers.GroupedRowsKeeperEx.Save() +51
   DevExpress.Data.Helpers.ListSourceRowsKeeper.Save() +133
   DevExpress.Data.DataController.BeginUpdate() +63
   DevExpress.Data.DataControllerBase.OnListSourceChanged() +100
   DevExpress.Data.DataControllerBase.SetListSourceCore(IList value) +91
   DevExpress.Data.DataControllerBase.SetListSource(IList value) +58
   DevExpress.Data.BaseListSourceDataController.SetDataSource(Object dataSource) +74
   DevExpress.Web.Data.WebDataControllerProvider.CreateDataController(Object dataSource) +479
   DevExpress.Web.Data.WebDataControllerProvider.SetDataSource(Object dataSource) +204
   DevExpress.Web.Data.WebDataProxy.SetDataSource(Object dataSource) +121
   DevExpress.Web.ASPxGridView.ASPxGridView.PerformDataBinding(String dataHelperName, IEnumerable data) +84
   DevExpress.Web.ASPxClasses.Internal.DataHelper.PerformDataBinding(IEnumerable data) +64
   DevExpress.Web.ASPxClasses.Internal.DataHelper.OnDataSourceViewSelectCallback(IEnumerable data) +82
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31
   DevExpress.Web.ASPxClasses.Internal.DataHelper.PerformSelect() +175
   DevExpress.Web.ASPxGridView.GridViewDataHelper.PerformSelect() +173
   DevExpress.Web.ASPxClasses.Internal.DataContainer.PerformSelect() +123
   DevExpress.Web.ASPxClasses.ASPxDataWebControlBase.DataBindCore() +44
   DevExpress.Web.ASPxClasses.ASPxDataWebControlBase.DataBind() +177
   DevExpress.Web.ASPxGridView.ASPxGridView.DataBind() +224
   DevExpress.Web.ASPxClasses.Internal.DataHelperBase.EnsureDataBound(Boolean ensureChildControls) +114
   DevExpress.Web.ASPxClasses.Internal.DataHelperBase.EnsureDataBound() +34
   DevExpress.Web.ASPxClasses.Internal.DataContainer.EnsureDataBound() +126
   DevExpress.Web.ASPxClasses.ASPxDataWebControlBase.OnPreRender(EventArgs e) +47
   System.Web.UI.Control.PreRenderRecursiveInternal() +80
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

Any idea ? I've read some threads where some guys mentioned they use devexpress controls successfully. I'd curious what's the trick.

I like the devex controls and i'd like to use them but anyway, are there any controls that would be more "llblgen friendly" ??

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39861
Joined: 17-Aug-2003
# Posted on: 26-Aug-2009 18:12:13   

Could you post the linq server datasourcecontrol code you used? You have to assign to it a valid LinqMetaData object with a valid adapter object.

The devexpress asp.net controls will only page properly if the bound datasourcecontrol implements a specific interface of theirs, which we don't do as otherwise we have to ship their control library.

There is a backwards compatibility setting for this: DataSourceForceStandardPaging. See also the background story here: http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=13297

It's a long story, and the end result was that they added that setting to switch off advanced grouping etc. to allow basic paging. If you want the more advanced stuff, use the linq server datasource control, however be aware that THAT control makes it impossible to do roundtrip databinding (so edit + save), as the data is readonly. It's up to you simple_smile (all o/r mappers have this same problem, except their own XPO)

Frans Bouma | Lead developer LLBLGen Pro
methodman
User
Posts: 194
Joined: 24-Aug-2009
# Posted on: 27-Aug-2009 13:41:21   

Here is the LinqServerMode DataSource


<dxdtlnq:LinqServerModeDataSource ID="LinqServerModeDataSource2" runat="server" 
        ContextTypeName="AutaNamespace.Linq.LinqMetaData" TableName="Auto" />

and the classic LinqData Source is throwing the same error

    <asp:LinqDataSource ID="LinqDataSource1" runat="server" 
        ContextTypeName="AutaNamespace.Linq.LinqMetaData" 
        Select="new (Id, Porucha, Cena, PoruchaPopis, Servis)" TableName="Porucha">
    </asp:LinqDataSource>

How can i assign a valid adapter object to this datasources ?

I see DevExpress isn't maybe the best choice. What components would you recommend me ?

Walaa avatar
Walaa
Support Team
Posts: 14993
Joined: 21-Aug-2005
# Posted on: 28-Aug-2009 12:11:41   

How can i assign a valid adapter object to this datasources ?

Please check the following thread, for code example: http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=15589

I see DevExpress isn't maybe the best choice. What components would you recommend me ?

We don't have an official recommendation here, some of our customers prefer Telerik's. But You'll have to test and compare these Grids to pick the best one for you.