- Home
- LLBLGen Pro
- LLBLGen Pro Runtime Framework
DevExpress asp.net controls
Joined: 24-Aug-2009
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" ??
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 (all o/r mappers have this same problem, except their own XPO)
Joined: 24-Aug-2009
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 ?
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.