This question is locked. New answers and comments are not allowed.
I have an application that is deployed to about a thousand users. About 5 times a day we get calls from various users saying that they cannot commit changes to a new row that was added to the main sales entry grid. We have only been able to have the same thing happen in our testing a handful of times. Each time it happens, we are not able to figure out the steps to reproduce the problem. There are no exceptions created so I am having a heck of a time tracking it down.
The grid uses row details heavily. In fact, the columns of the grid are read only and all changes to the data are happening in the row details section where there are two way bindings to the columns. The user clicks the Add New Record to make a new entry. We have been telling them to click on the Row Indicator to commit the row after filling in the required fields. I am using a data template selector to select a template for the Row Details. I am using RowValidating to validate the data.
Any help would be appreciated in trying to track this down. Occasionally I see a submit failed due to an edit in progress, but I a assume that is happening because the user is clicking a save button but the Row that they just added is still stuck in insert/edit mode. Most of the time after clicking around on the screen for a few minutes, the problem corrects itself.
Here is part of the grid:
And here is one of the RowDetails templates:
TextBoxChangeExt is just regular Textbox that has an event handler to update the source each time it changes. The problem was happening before it was changed from a regular textbox.
-Randy
The grid uses row details heavily. In fact, the columns of the grid are read only and all changes to the data are happening in the row details section where there are two way bindings to the columns. The user clicks the Add New Record to make a new entry. We have been telling them to click on the Row Indicator to commit the row after filling in the required fields. I am using a data template selector to select a template for the Row Details. I am using RowValidating to validate the data.
Any help would be appreciated in trying to track this down. Occasionally I see a submit failed due to an edit in progress, but I a assume that is happening because the user is clicking a save button but the Row that they just added is still stuck in insert/edit mode. Most of the time after clicking around on the screen for a few minutes, the problem corrects itself.
Here is part of the grid:
<telerik:RadGridView Grid.Row="1" Name="_rgvEntryData" ShowGroupPanel="False" AutoGenerateColumns="False" ShowInsertRow="True" ShowColumnFooters="True" RowDetailsVisibilityChanged="_rgvEntryData_RowDetailsVisibilityChanged" Margin="{StaticResource InnerMargin}" AddingNewDataItem="_rgvEntryData_AddingNewDataItem" CanUserFreezeColumns="False" RowValidating="_rgvEntryData_RowValidating" BeginningEdit="_rgvEntryData_BeginningEdit"AlternationCount="2" Filtered="_rgvEntryData_Filtered" RowIndicatorVisibility="Visible" SelectionChanged="_rgvEntryData_SelectionChanged" RowDetailsVisibilityMode="VisibleWhenSelected"CurrentCellChanged="_rgvEntryData_CurrentCellChanged" Deleting="_rgvEntryData_Deleting" CanUserReorderColumns="False" RowEditEnded="_rgvEntryData_RowEditEnded" CellLoaded="_rgvEntryData_CellLoaded" >And here is one of the RowDetails templates:
<DataTemplate x:Key="AutoFireEntry"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="25"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Text="Customer Name: " Margin="5,9,5,5"/> <rsch:TextBoxChangeExt Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" Text="{Binding CustomerName, Mode=TwoWay}" Margin="5,5,5,5" Tag="CustomerName"/> <TextBlock Grid.Row="0" Grid.Column="4" Text="Written Date: " Margin="5,9,5,5"/> <telerik:RadDatePicker Grid.Row="0" Grid.Column="5" SelectedValue="{Binding WrittenDate, Mode=TwoWay}" Margin="5,5,5,5" HorizontalAlignment="Left" Tag="WrittenDate" CalendarStyle="{StaticResource calendarStyle}" LostFocus="_rdpWrittenDate_LostFocus" SelectionChanged="_writtenDate_SelectionChanged"/> <TextBlock Grid.Row="0" Grid.Column="6" Text="Issued Date: " Margin="5,9,5,5"/> <telerik:RadDatePicker Grid.Row="0" Grid.Column="7" SelectedValue="{Binding IssueDate, Mode=TwoWay}" Margin="5,5,5,5" HorizontalAlignment="Left" Tag="IssueDate" CalendarStyle="{StaticResource calendarStyle}" LostFocus="_rdpIssuedDate_LostFocus" MinWidth="80"/> <TextBlock Grid.Row="0" Grid.Column="8" Text="{Binding Converter={StaticResource BrandConverter}, ConverterParameter=Premium}" Margin="5,9,5,5"/> <telerik:RadMaskedTextBox Grid.Row="0" Grid.Column="9" Value="{Binding TermPremium, Mode=TwoWay}" Margin="5,5,5,5" MaskType="Numeric" Mask="c" MinWidth="80" HorizontalContentAlignment="Right" SelectionOnFocus="SelectAll" Tag="TermPremium"/> <TextBlock Grid.Row="1" Grid.Column="0" Text="Sold By: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="1" Grid.Column="1" SelectedValue="{Binding SoldByUserID, Mode=TwoWay}" ItemTemplate="{StaticResource EmployeeItemTemplate}" SelectedValuePath="UserID" Tag="SoldByName" ItemsSource="{StaticResource Employees}" Margin="5,5,5,5" IsEditable="False" MinWidth="50" MaxWidth="120" /> <TextBlock Grid.Row="1" Grid.Column="2" Text="Policy Type: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="1" Grid.Column="3" SelectedValue="{Binding PolicyTypeID, Mode=TwoWay}" ItemTemplate="{StaticResource SetupItemTemplate}" SelectedValuePath="SetupID" Tag="PolicyType" ItemsSource="{StaticResource PolicyTypes}" Margin="5,5,5,5" IsEditable="False" MinWidth="50" MaxWidth="120" EmptySelectionBoxTemplate="{StaticResource EmptyTemplate}" /> <TextBlock Grid.Row="1" Grid.Column="4" Text="Business Type: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="1" Grid.Column="5" SelectedValue="{Binding BusinessTypeID, Mode=TwoWay}" ItemTemplate="{StaticResource SetupItemTemplate}" SelectedValuePath="SetupID" Tag="BusinessType" ItemsSource="{StaticResource BusinessTypes}" Margin="5,5,5,5" IsEditable="False" MinWidth="50" MaxWidth="120" EmptySelectionBoxTemplate="{StaticResource EmptyTemplate}" /> <TextBlock Grid.Row="1" Grid.Column="6" Text="Source Type: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="1" Grid.Column="7" SelectedValue="{Binding SourceTypeID, Mode=TwoWay}" ItemTemplate="{StaticResource SetupItemTemplate}" SelectedValuePath="SetupID" MinWidth="50" MaxWidth="120" Tag="SourceType" ItemsSource="{StaticResource SourceTypes}" Margin="5,5,5,5" IsEditable="False" EmptySelectionBoxTemplate="{StaticResource EmptyTemplate}" /> <TextBlock Grid.Row="1" Grid.Column="8" Text="Det. Source Type: " Padding="5,9,5,5" /> <telerik:RadComboBox Grid.Row="1" Grid.Column="9" SelectedValue="{Binding DetailedSourceTypeID, Mode=TwoWay}" ItemTemplate="{StaticResource SetupItemTemplate}" SelectedValuePath="SetupID" MinWidth="50" MaxWidth="120" Tag="DetSourceType" ItemsSource="{StaticResource DetSourceTypes}" Margin="5,5,5,5" IsEditable="False" ClearSelectionButtonVisibility="Visible" ClearSelectionButtonContent="Clear Selection"/> <TextBlock Grid.Row="2" Grid.Column="0" Text="Prior Insurance: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="2" Grid.Column="1" SelectedValue="{Binding PriorInsuranceCoID, Mode=TwoWay}" ItemTemplate="{StaticResource SetupItemTemplate}" SelectedValuePath="SetupID" MinWidth="50" MaxWidth="120" ItemsSource="{StaticResource PriorInsurance}" Margin="5,5,5,5" IsEditable="False" ClearSelectionButtonVisibility="Visible" ClearSelectionButtonContent="Clear Selection"/> <TextBlock Grid.Row="2" Grid.Column="2" Text="Term Type: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="2" Grid.Column="3" SelectedValue="{Binding TermType, Mode=TwoWay}" DisplayMemberPath="Text" SelectedValuePath="Value" ItemsSource="{StaticResource TermTypes}" Margin="5,5,5,5" IsEditable="False" MinWidth="50" MaxWidth="120" /> <TextBlock Grid.Row="2" Grid.Column="4" Text="Payment Mode: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="2" Grid.Column="5" SelectedValue="{Binding PaymentMode, Mode=TwoWay}" DisplayMemberPath="Text" SelectedValuePath="Value" ItemsSource="{StaticResource PaymentMethods}" Margin="5,5,5,5" IsEditable="False" MinWidth="50" MaxWidth="120" ClearSelectionButtonVisibility="Visible" ClearSelectionButtonContent="Clear Selection"/> <TextBlock Grid.Row="2" Grid.Column="6" Text="Allocation: " Margin="5,9,5,5"/> <telerik:RadNumericUpDown Grid.Row="2" Grid.Column="7" Margin="5,5,5,5" Minimum="5" Maximum="100" Value="{Binding Allocation, Mode=TwoWay}" LargeChange="10" SmallChange="1" NumberDecimalDigits="0" CustomUnit="%" /> <TextBlock Grid.Row="2" Grid.Column="8" Text="Follow Up Type: " Margin="5,9,5,5"/> <telerik:RadComboBox Grid.Row="2" Grid.Column="9" SelectedValue="{Binding FollowUpTypeID, Mode=TwoWay}" ItemTemplate="{StaticResource SetupItemTemplate}" SelectedValuePath="SetupID" MinWidth="50" MaxWidth="120" Tag="FUType" ItemsSource="{StaticResource FollowUpTypes}" Margin="5,5,5,5" IsEditable="False" ClearSelectionButtonVisibility="Visible" ClearSelectionButtonContent="Clear Selection"/> <CheckBox Grid.Row="2" Grid.Column="10" IsChecked="{Binding IsFollowUpComplete, Mode=TwoWay}" Margin="5,8,5,5" HorizontalAlignment="Left"/> <TextBlock Grid.Row="3" Grid.Column="0" Text="Charge Back: " Margin="5,9,5,5"/> <telerik:RadDatePicker Grid.Row="3" Grid.Column="1" SelectedValue="{Binding ChargeBackDate, Mode=TwoWay}" Margin="5,5,5,5" HorizontalAlignment="Left" Tag="ChargeBack" CalendarStyle="{StaticResource calendarStyle}" LostFocus="_rdpChargeBackDate_LostFocus" MinWidth="80"/> <TextBlock Grid.Row="3" Grid.Column="2" Text="Premium: " Margin="5,9,5,5" Visibility="{Binding Converter={StaticResource BrandVisibilityConverter}, ConverterParameter=5}"/> <telerik:RadMaskedTextBox Grid.Row="3" Grid.Column="3" Value="{Binding BrokerageFee, Mode=TwoWay}" Margin="5,5,5,5" MaskType="Numeric" Mask="c" MinWidth="80" HorizontalContentAlignment="Right" SelectionOnFocus="SelectAll" Visibility="{Binding Converter={StaticResource BrandVisibilityConverter}, ConverterParameter=5}"/> <TextBlock Grid.Row="3" Grid.Column="4" Text="Notes:" Margin="5,9,5,5" /> <rsch:TextBoxChangeExt Grid.Row="3" Grid.Column="5" Grid.ColumnSpan="5" Text="{Binding Notes, Mode=TwoWay}" Margin="5,5,5,5" Tag="randy"/> </Grid></DataTemplate>TextBoxChangeExt is just regular Textbox that has an event handler to update the source each time it changes. The problem was happening before it was changed from a regular textbox.
-Randy