I'm using ES 2008.1.623.0 with ASP.NET 3.5.
I don't understand what I'm doing wrong. In the following code I use a ListView with esDataSource
Code:
<asp:ListView ID="ListView1" DataSourceID="esdTest" runat="server">
<LayoutTemplate>
<div>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</div>
</LayoutTemplate>
<ItemTemplate>
<%# Eval("HotelName") %><br />
</ItemTemplate>
</asp:ListView>
<cc1:esDataSource ID="esdTest" runat="server" />
Private Sub esdTest_esSelect(ByVal sender As Object, ByVal e As EntitySpaces.Web.esDataSourceSelectEventArgs) Handles esdTest.esSelect
Dim coll As New HotelViewCollection
Dim item As New HotelView
item = coll.AddNew
item.HotelName = "Test 1"
item = coll.AddNew
item.HotelName = "Test 2"
e.Collection = coll
End Sub This code produces the following error:
Code:
[InvalidCastException: Cast specificato non valido.]
EntitySpaces.Web.esDataSourceView.FetchTotalRowCount(esDataSourceSelectEventArgs e) +447
EntitySpaces.Web.esDataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +276
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
System.Web.UI.WebControls.ListView.PerformSelect() +57
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.ListView.CreateChildControls() +55
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +44
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
But If I don't use the esDataSource in this way:
Code:
<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
<div>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</div>
</LayoutTemplate>
<ItemTemplate>
<%# Eval("HotelName") %><br />
</ItemTemplate>
</asp:ListView>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim coll As New HotelViewCollection
Dim item As New Viagiar.Business.Objects.HotelView
item = coll.AddNew
item.HotelName = "Test 1"
item = coll.AddNew
item.HotelName = "Test 2"
ListView1.DataSource = coll
ListView1.DataBind()
End Sub All work fine