Hi David
Thanks - that link is similar but unlike this situtation setting Refetch=true does "work" for me - so thats all good . But without setting this property the grid simply refreshes followign a <gridname>.DataBind() call, and the PerformSelect event doesn't get fired.
LLBL Version 2.6, runtime: v2.0.50727
Both the ASPxGrid + LLBLDataSource are enclosed within an ASPxCallbackPanel - which gets its callback fired elsewhere by a button via clientside javascript.
LLBLGen datasource2 aspx
<llblgenpro:LLBLGenProDataSource2 runat="server" EntityFactoryTypeName="OrYx.TVShopping.TMS.FactoryClasses.ScheduleEntityFactory, OrYx.TVShopping.TMS"
AdapterTypeName="OrYx.TVShopping.TMS.DatabaseSpecific.DataAccessAdapter, OrYx.TVShopping.TMSDBSpecific" LivePersistence="False" DataContainerType="EntityCollection" CacheLocation="Session" ID="dsSchedule"
OnPerformSelect="dsSchedule_PerformSelect"
OnPerformGetDbCount="dsSchedule_PerformGetDbCount">
</llblgenpro:LLBLGenProDataSource2>
CS behind events:
protected void dsSchedule_PerformGetDbCount(object sender, PerformGetDbCountEventArgs2 e) {
DataAccessAdapter adapter = new DataAccessAdapter();
e.DbCount = adapter.GetDbCount(e.ContainedCollection, e.Filter);
}
protected void dsSchedule_PerformSelect(object sender, PerformSelectEventArgs2 e) {
// setup pre-fetch resource and segment data
IPrefetchPath2 mySchedulePrefetchPath = new PrefetchPath2((int)EntityType.ScheduleEntity);
mySchedulePrefetchPath.Add(ScheduleEntity.PrefetchPathResource);
mySchedulePrefetchPath.Add(ScheduleEntity.PrefetchPathSegment);
// setup filter criteria - only return schedule items for this day
DateTime myScheduleDate = edtScheduleDate.Date;
IPredicateExpression myFilter = new PredicateExpression(ScheduleFields.ScheduleDate == myScheduleDate);
IRelationPredicateBucket myScheduleFilter = new RelationPredicateBucket(myFilter);
// setup sorting
ISortExpression myScheduleSorter = new SortExpression(ScheduleFields.OrderNo | SortOperator.Ascending);
// load schedule and related entities
using (DataAccessAdapter adapter = new DataAccessAdapter()) {
adapter.FetchEntityCollection(e.ContainedCollection, myScheduleFilter, e.MaxNumberOfItemsToReturn, myScheduleSorter, mySchedulePrefetchPath, e.PageNumber, e.PageSize);
};
// determine "start" time thru each day
RecalculateStartTimes();
}
ASPxGridView aspx:
<dxwgv:ASPxGridView runat="server" ClientInstanceName="grdSchedule" CssFilePath="~/App_Themes/Glass/{0}/styles.css" CssPostfix="Glass" KeyFieldName="ScheduleId" AutoGenerateColumns="False" DataSourceID="dsSchedule" Width="100%" ID="grdSchedule" __designer:wfdid="w47" OnHtmlRowPrepared="grdSchedule_HtmlRowPrepared" OnHtmlDataCellPrepared="grdSchedule_HtmlDataCellPrepared">
<ClientSideEvents RowClick="function(s, e) {
//Clear the text selection
_aspxClearSelection();
//Unselect all rows
grdSchedule._selectAllRowsOnPage(false);
//Select the row
grdSchedule.SelectRow(e.visibleIndex, true);
}"></ClientSideEvents>
<Columns>
<dxwgv:GridViewCommandColumn ShowSelectCheckbox="True" Width="2%" Visible="False"></dxwgv:GridViewCommandColumn>
<dxwgv:GridViewDataTextColumn FieldName="OrderNo" SortIndex="0" SortOrder="Ascending" Width="3%" Caption="Ord" ToolTip="Schedule Order No" VisibleIndex="0">
<Settings AllowSort="True"></Settings>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="StartTime" Width="6%" Caption="Start Time" VisibleIndex="1"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="LouthId" Width="12%" Caption="Louth Id" ToolTip="Program/Segment Louth Id" VisibleIndex="2"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="SegmentNo" Width="4%" Caption="Seg No" ToolTip="Segment No" VisibleIndex="3">
<CellStyle HorizontalAlign="Center"></CellStyle>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="FullTitle" Width="35%" VisibleIndex="4"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="ResourceTypeCode" Width="8%" Caption="Type" VisibleIndex="5"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="Duration" Width="5%" ToolTip="Program/Segment Duration" VisibleIndex="6">
<CellStyle HorizontalAlign="Right"></CellStyle>
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataDateColumn FieldName="ScheduleDate" Width="5%" Visible="False"></dxwgv:GridViewDataDateColumn>
<dxwgv:GridViewDataTextColumn FieldName="ScheduleId" ReadOnly="True" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="ResourceId" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="SegmentId" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="Gap" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="BookingActive" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="SegmentDuration" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="ResourceDuration" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="ResourceLouthId" Visible="False"></dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="SegmentLouthId" Visible="False"></dxwgv:GridViewDataTextColumn>
</Columns>
<SettingsBehavior AllowSort="False"></SettingsBehavior>
<SettingsPager PageSize="50" Position="TopAndBottom" NumericButtonCount="50"></SettingsPager>
<Settings ShowTitlePanel="True"></Settings>
<SettingsText Title="Schedule Title"></SettingsText>
<Images ImageFolder="~/App_Themes/Glass/{0}/">
<CollapsedButton Height="12px" Width="11px"></CollapsedButton>
<DetailCollapsedButton Height="9px" Width="9px"></DetailCollapsedButton>
<FilterRowButton Height="13px" Width="13px"></FilterRowButton>
<PopupEditFormWindowClose Height="17px" Width="17px"></PopupEditFormWindowClose>
</Images>
<Styles CssPostfix="Glass" CssFilePath="~/App_Themes/Glass/{0}/styles.css">
<Header SortingImageSpacing="5px" ImageSpacing="5px"></Header>
<TitlePanel Font-Bold="True"></TitlePanel>
</Styles>
</dxwgv:ASPxGridView>