<telerik:RadGrid ID="gvAmount" runat="server" GridLines="Both" BorderStyle="None" ShowFooter="true"
ShowHeader="true" CellPadding="0" AutoGenerateColumns="false" CssClass="SearchGrid" AllowSorting="true" >
<MasterTableView>
<RowIndicatorColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" Font-Size="Medium"></HeaderStyle>
</ExpandCollapseColumn>
<Columns>
<telerik:GridTemplateColumn UniqueName="Include" HeaderText="Include?" >
<ItemStyle />
<ItemTemplate>
<asp:CheckBox ID="chkInclude" runat="server" Checked="true" />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="ID" HeaderText="ID"
UniqueName="ID" EmptyDataText=" " ItemStyle-HorizontalAlign="Left" />
<telerik:GridBoundColumn DataField="Name" HeaderText="Name"
UniqueName="Name" EmptyDataText=" " ItemStyle-HorizontalAlign="Left" />
<telerik:GridTemplateColumn UniqueName="CurrAmt" HeaderText="Current Amount">
<ItemStyle />
<ItemTemplate>
<telerik:RadNumericTextBox ID="txtCurrAmt" runat="server" Width="60px" Value="0" >
<ClientEvents OnBlur="Blur" OnFocus="Focus" />
</telerik:RadNumericTextBox>
</ItemTemplate>
<FooterTemplate>
<telerik:RadNumericTextBox ID="txtCurrTotal" runat="server" Type="Currency" ReadOnly="true">
<ClientEvents OnLoad="Load" />
</telerik:RadNumericTextBox>
</FooterTemplate>
</telerik:GridTemplateColumn>
</Columns>
<PagerStyle Visible="false" />
</MasterTableView>
<ClientSettings>
<Selecting AllowRowSelect="True" />
/ClientSettings>
<FilterMenu>
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
</FilterMenu>
</telerik:RadGrid>
<telerik:RadGrid ID="UserGrid" runat="server" CssClass="RadGrid" GridLines="None" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="False" EnableHeaderContextMenu="true" ShowStatusBar="true" HorizontalAlign="NotSet" AllowMultiRowEdit="False" OnNeedDataSource="UserGrid_NeedDataSource" OnItemDataBound="UserGrid_ItemDataBound" Width="870" > <ClientSettings> <Scrolling AllowScroll="True" SaveScrollPosition="True" UseStaticHeaders="true" /> </ClientSettings> <ExportSettings HideStructureColumns="true" OpenInNewWindow="true" ExportOnlyData="true" IgnorePaging="true" FileName="Que_Centre_Users_Export" /> <MasterTableView CommandItemDisplay="TopAndBottom" DataKeyNames="Id" TableLayout="Fixed" EditMode="EditForms" InsertItemPageIndexAction="ShowItemOnCurrentPage" PageSize="25" > <Columns> <telerik:GridTemplateColumn HeaderText="First Name" UniqueName="EditFirstName" DataField="FirstName" SortExpression="FirstName" HeaderStyle-Width="100px" ItemStyle-Width="100px"> <ItemTemplate> <asp:LinkButton runat="server" Text="Edit" CommandName="EditUser" Id="lbFirstName" CausesValidation="false" /> <asp:Label runat="server" ID="lblFirstName" Text="" Visible="false" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtFirstName" Width="120" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Last Name" UniqueName="EditLastName" DataField="LastName" SortExpression="LastName" HeaderStyle-Width="100px" ItemStyle-Width="100px"> <ItemTemplate > <asp:LinkButton runat="server" Text="Edit" CommandName="EditUser" Id="lbLastName" CausesValidation="false" /> <asp:Label runat="server" ID="lblLastName" Text="" Visible="false" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtLastName" Width="100" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="EmailAddress" HeaderText="Email Address" UniqueName="EmailAddress" SortExpression="EmailAddress" HeaderStyle-Width="150px" ItemStyle-Width="150px"> <ItemTemplate > <asp:Label runat="server" ID="lblEmailAddress" Text="" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtEmailAddress" Width="175" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="PhoneNumber" HeaderText="Phone Number" UniqueName="PhoneNumber" SortExpression="PhoneNumber" HeaderStyle-Width="125px" ItemStyle-Width="125px"> <ItemTemplate > <asp:Label runat="server" ID="lblPhoneNumber" Text="" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtPhoneNumber" Width="100" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="User Group" UniqueName="UserGroupName" DataField="UserGroupName" SortExpression="UserGroupName" HeaderStyle-Width="150px" ItemStyle-Width="150px"> <ItemTemplate> <asp:Label runat="server" ID="lblUserGroupName" Text="" /> </ItemTemplate> <EditItemTemplate> <telerik:RadComboBox Runat="server" Id="radUserGroup" EmptyMessage="Select User Group" MarkFirstMatch="true" Width="150px" Height="150" DropDownWidth="200" EnableLoadOnDemand="false" AllowCustomText="false" AutoPostBack="false" Filter="Contains" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="Username" HeaderText="Username" UniqueName="Username" SortExpression="Username" Display="false" HeaderStyle-Width="100px" ItemStyle-Width="100px"> <ItemTemplate > <asp:Label runat="server" ID="lblUsername" Text="" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtUsername" Width="100" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="HourlyRate" HeaderText="Hourly Rate" UniqueName="HourlyRate" SortExpression="HourlyRate" Display="false" HeaderStyle-Width="75px" ItemStyle-Width="75px"> <ItemTemplate > <asp:Label runat="server" ID="lblHourlyRate" Text="" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtHourlyRate" Width="50" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="HourlyOvertimeRate" HeaderText="Hourly Overtime Rate" UniqueName="HourlyOvertimeRate" SortExpression="HourlyOvertimeRate" Display="false" HeaderStyle-Width="75px" ItemStyle-Width="75px"> <ItemTemplate > <asp:Label runat="server" ID="lblHourlyOvertimeRate" Text="" /> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" ID="txtHourlyOvertimeRate" Width="50" /> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Delete" UniqueName="DeleteUser" DataField="Deleted" Resizable="false" HeaderStyle-Width="50px" HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate > <asp:ImageButton runat="server" CommandName="DeleteUser" Id="DeleteUserIcon" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Block" UniqueName="BlockUser" DataField="Blocked" Resizable="false" HeaderStyle-Width="50px" HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="50px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:ImageButton runat="server" CommandName="BlockUser" Id="BlockUserIcon" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> <NoRecordsTemplate> <div style="padding: 5px;">No users exist.</div> </NoRecordsTemplate> <EditFormSettings EditFormType="Template"> <FormTemplate> <asp:Panel runat="server" ID="UserEditForm" /> </FormTemplate> </EditFormSettings> <CommandItemTemplate> <telerik:RadToolBar ID="UserGrid_RadToolBar" runat="server" AutoPostBack="true" EnableRoundedCorners="true" EnableShadows="true"> <Items> <telerik:RadToolBarButton Text="Create New User" Value="CreateNewUser" CommandName="InitInsert" PostBack="true" /> <telerik:RadToolBarButton IsSeparator="true" Value="Separator1" /> <telerik:RadToolBarButton Value="FiltersGroup"> <ItemTemplate> <div style="padding: 4px; min-height: 8px; vertical-align: middle;"> <asp:label runat="server" id="lblFiltersGroup" Text="Filter List: " ForeColor="White" Font-Bold="true" /> </div> </ItemTemplate> </telerik:RadToolBarButton> <telerik:RadToolBarButton Value="FilterByUserGroup" Group="Filters"> <ItemTemplate> <div style="margin-right: 5px; display: block; padding: 3px; min-height: 8px; vertical-align: middle;"> <asp:label runat="server" id="lblFilterByUserGroup" AssociatedControlId="radFilterByUserGroup" Text="User Group: " ForeColor="White" style="padding-right: 5px;" /> <telerik:RadComboBox Runat="server" Id="radFilterByUserGroup" EmptyMessage="Select User Group" MarkFirstMatch="true" Width="175px" Height="150" DropDownWidth="200" EnableLoadOnDemand="false" AllowCustomText="false" AutoPostBack="true" Filter="Contains" OnSelectedIndexChanged="radFilterByUserGroup_SelectedIndexChanged" /> </div> </ItemTemplate> </telerik:RadToolBarButton> <telerik:RadToolBarButton IsSeparator="true" Value="Separator2" /> <telerik:RadToolBarButton Value="RecordsPerPage"> <ItemTemplate> <div style="margin-right: 5px; display: block; padding: 3px; min-height: 8px; vertical-align: middle;"> <asp:label runat="server" id="lblRecordsPerPage" AssociatedControlId="radRecordsPerPage" Text="Page Size: " ForeColor="White" style="padding-right: 5px;" /> <telerik:RadComboBox Runat="server" Id="radRecordsPerPage" EmptyMessage="Select Records per Page" MarkFirstMatch="true" Width="75px" Height="100" DropDownWidth="100" EnableLoadOnDemand="false" AllowCustomText="false" AutoPostBack="true" Filter="Contains" OnSelectedIndexChanged="radRecordsPerPage_SelectedIndexChanged" /> </div> </ItemTemplate> </telerik:RadToolBarButton> <telerik:RadToolBarButton IsSeparator="true" Value="Separator3" /> <telerik:RadToolBarButton Text="Bulk Update" Value="BulkUpdate" CommandName="BulkUpdate" PostBack="true" /> <telerik:RadToolBarButton IsSeparator="true" Value="Separator4" /> <telerik:RadToolBarDropDown Text="Export Users"> <Buttons> <telerik:RadToolBarButton Text="Export To Excel" PostBack="true" CommandName="ExportToExcel" /> <telerik:RadToolBarButton Text="Export To Word" PostBack="true" CommandName="ExportToWord" /> <telerik:RadToolBarButton Text="Export To Pdf" PostBack="true" CommandName="ExportToPdf" /> </Buttons> </telerik:RadToolBarDropDown> <telerik:RadToolBarButton Text="Save Updates" Value="BulkUpdateSave" CommandName="BulkUpdateSave" PostBack="true" Visible="false" /> <telerik:RadToolBarButton IsSeparator="true" Value="Separator5" /> <telerik:RadToolBarButton Text="Cancel Updates" Value="BulkUpdateCancel" CommandName="BulkUpdateCancel" PostBack="true" Visible="false" /> </Items> </telerik:RadToolBar> </CommandItemTemplate> </MasterTableView> <ClientSettings AllowColumnsReorder="false"> <Resizing AllowRowResize="false" AllowColumnResize="true" EnableRealTimeResize="false" ResizeGridOnColumnResize="false" /> </ClientSettings> <PagerStyle Mode="Slider" Position="TopAndBottom" /> </telerik:RadGrid> function OnClientShow(sender, e) { $telerik.$(".ruFakeInput").hide();}I have a data entry form which is launched as a new RadWindow above a summary page. As users maintain their data, events are fired back to code-behind to do calcs and refresh parts of the current page/window. For example, change a quantity ordered and the current inventory available quantity refreshes from the server. This works fine.
When done, users can also click Save, the current data gets saved on the server and the window is closed. This works fine.
There is a situation where a user will enter data, but not tab/enter away from the RadNumericTextBox. They just click Save without the textbox control losing focus. When this happens the Save triggers the event on the server and "simultaneously" the textbox fires its OnTextChanged event. This frequently results in the RadWindow remaining open, a server error firing, and possibly the session state getting lost. I can't define a consistent state because it's not consistent - it depends on which event gets processed first - and sometimes there's no error.
protected void radGridActivity_UpdateCommand(object source, GridCommandEventArgs e) { }