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