Hello,
I have a webpage that has a grid on it, the grid opens in edit mode and functions exactly as needed. I have it so it saves everytime you go to filter, sort rows, change page size, etc...all per user request. The last request was to force a save when they leave the page. I am attempting to do it with
This forces the page to save and works as needed, they do not want confirmation, they want it to save no matter what. My issue is that when I put the above code on the page, the radAjaxLoadingPanel no longer displays on any item command clicks or on paging, sorting. It only shows up on filtering. I have no idea why this may be occuring.
Below I will paste all my code so you can see everything that is occuring. If you have any other thoughts please let me know. If you notice anything else that does not look correct, please let me know. I am new to learning telerik and these pages but am pretty happy with what I have programmed so far and everything aside from the "LoadingPanel" right now works as needed.Thank you in advance.
ASPX code:
aspx.vb code:
I have a webpage that has a grid on it, the grid opens in edit mode and functions exactly as needed. I have it so it saves everytime you go to filter, sort rows, change page size, etc...all per user request. The last request was to force a save when they leave the page. I am attempting to do it with
window.onbeforeunload = function (evt) {$find("<%=RadAjaxManager1.ClientID %>").ajaxRequest();}This forces the page to save and works as needed, they do not want confirmation, they want it to save no matter what. My issue is that when I put the above code on the page, the radAjaxLoadingPanel no longer displays on any item command clicks or on paging, sorting. It only shows up on filtering. I have no idea why this may be occuring.
Below I will paste all my code so you can see everything that is occuring. If you have any other thoughts please let me know. If you notice anything else that does not look correct, please let me know. I am new to learning telerik and these pages but am pretty happy with what I have programmed so far and everything aside from the "LoadingPanel" right now works as needed.Thank you in advance.
ASPX code:
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterNoBanner.master" AutoEventWireup="false" CodeFile="AddTonnage.aspx.vb" Inherits="AddTonnage" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><asp:Content ID="Content1" ContentPlaceHolderID="cphBodyText" Runat="Server"> <div style="width: 980px; clear: both; border-bottom: 0px solid black;" > <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> var blnSaveGrid = "True"; function CatchKeyPress(sender, args) { if (args.get_keyCode() == 13) { //Enter Key var e = args.get_domEvent().rawEvent; e.returnValue = false; e.cancelBubble = true; if (e.stopPropagation) { e.preventDefault(); e.stopPropagation(); } } if (args.get_keyCode() == 27) { //esca Key var e = args.get_domEvent().rawEvent; e.returnValue = false; e.cancelBubble = true; if (e.stopPropagation) { e.preventDefault(); e.stopPropagation(); } } } function setFocus2(down, current, right, evt) { var keynum; var event = evt || window.event; if (window.event) // IE { keynum = window.event.keyCode; } else if (e.which) // Netscape/Firefox/Opera { keynum = window.event.which; } if (keynum == 9 || keynum == 13) { if (event.shiftKey == 1) { } else { var today = new Date(); var dd = today.getDate(); var mm = today.getMonth() + 1; //January is 0! var yyyy = today.getFullYear(); if (dd < 10) { dd = '0' + dd } if (mm < 10) { mm = '0' + mm } var now = mm + '/' + dd + '/' + yyyy; var txtDown = $get(down); var txtCurrent = $get(current); var txtRight = $get(right); txtRight.value = now; txtRight.focus(); txtRight.select(); // txtCurrent.focus(); // txtCurrent.select(); txtDown.focus(); txtDown.select(); evt.preventDefault(); } } //return false; } function lastFocus(right, evt) { var keynum; var event = evt || window.event; if (window.event) // IE { keynum = window.event.keyCode; } else if (e.which) // Netscape/Firefox/Opera { keynum = window.event.which; } if (keynum == 9 || keynum == 13) { if (event.shiftKey == 1) { } else { var today = new Date(); var dd = today.getDate(); var mm = today.getMonth() + 1; //January is 0! var yyyy = today.getFullYear(); if (dd < 10) { dd = '0' + dd } if (mm < 10) { mm = '0' + mm } var now = mm + '/' + dd + '/' + yyyy; var txtRight = $get(right); txtRight.value = now; txtRight.focus(); txtRight.select(); evt.preventDefault(); } } } window.onbeforeunload = function (evt) { $find("<%=RadAjaxManager1.ClientID %>").ajaxRequest(); } </script> </telerik:RadCodeBlock> <telerik:RadWindowManager runat="server" ID="RadWindowManager1"> </telerik:RadWindowManager> <telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" DecoratedControls="Default,Select,Textbox" EnableRoundedCorners="false" /> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="Label1" /> <telerik:AjaxUpdatedControl ControlID="lblQuarterYear" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadAjaxManager1" EventName="RadAjaxManager1_AjaxRequest"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="Label1" /> <telerik:AjaxUpdatedControl ControlID="lblQuarterYear" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="Label1" /> <telerik:AjaxUpdatedControl ControlID="lblQuarterYear" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="btnGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="Label1" /> <telerik:AjaxUpdatedControl ControlID="lblQuarterYear" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" EnableViewState="true" /> <table width="98%" border="0"> <tr valign="top"><td width="35%"><span style="color: Blue; font-weight: bold;">Add Quantity to loads of POs that are not complete and quantity is empty.</span> <br /><span style="background-color: #33CCCC;">Click on label to re-sort</span></td> <td valign="middle">Quarter <telerik:RadNumericTextBox incrementsettings-interceptarrowskeys="false" incrementsettings-interceptmousewheel="false" ID="txtQuarter" runat="server" Width="50px" MaxValue="4" MinValue="1" ><NumberFormat ZeroPattern="n" DecimalDigits="0"></NumberFormat> </telerik:RadNumericTextBox> Year <telerik:RadNumericTextBox incrementsettings-interceptarrowskeys="false" incrementsettings-interceptmousewheel="false" ID="txtYear" runat="server" Width="75px" MaxValue="2050" MinValue="2000" ><NumberFormat ZeroPattern="n" DecimalDigits="0" GroupSeparator=""></NumberFormat> </telerik:RadNumericTextBox> <telerik:RadButton runat="server" ID="btnGrid" Text="Enable Grid" ></telerik:RadButton> <br /><asp:Label id="lblQuarterYear" runat="server" Text="" Visible="false"></asp:Label> </td></tr> <tr><td colspan="2" align="center"><asp:Label id="Label1" runat="server" Text="" Visible="true"></asp:Label></td></tr></table> <telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" ShowStatusBar="True" AllowSorting="True" GridLines="None" runat="server" AllowFilteringByColumn="true" AutoGenerateColumns="False" CellSpacing="0" AllowAutomaticDeletes="True" AllowMultiRowEdit="true" AllowPaging="True" PageSize="50" Height="800px" Width="950px" Enabled="false" > <ClientSettings> <Scrolling AllowScroll="true" UseStaticHeaders="true"></Scrolling> </ClientSettings> <MasterTableView EditMode="InPlace" DataKeyNames="LoadID" DataSourceID="SqlDataSource1" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage" > <CommandItemTemplate> <table width="100%"> <tr> <td align="right"> <asp:LinkButton ID="btnCancelChanges" runat="server" CommandName="CancelChanges" Visible="true"><img style="border:0px" alt="" src="Images/Cancel.gif" />- Clear all Changes </asp:LinkButton> <asp:LinkButton ID="btnSaveChanges" runat="server" CommandName="SaveChanges" Visible="true"><img style="border:0px" alt="" src="Images/Update.gif" />- Save All changes</asp:LinkButton> </td> </tr> </table> </CommandItemTemplate><CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings><RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn><ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"></ExpandCollapseColumn> <Columns> <telerik:GridButtonColumn DataTextFormatString="Copy {0}" ButtonType="ImageButton" UniqueName="CopyRow" HeaderText="Copy" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" CommandName="CopyPaste" DataTextField="LoadID" ImageUrl="../images/ClientEditBatchUpdates/Img/Copy.gif" ShowInEditForm="true"> </telerik:GridButtonColumn><%-- <telerik:GridButtonColumn ShowInEditForm="true" ButtonType="ImageButton" HeaderText="Copy" Text="Copy Row '{0}'" CommandName="CopyPaste({0})" UniqueName="CopyRow" ImageUrl="../images/ClientEditBatchUpdates/Img/Copy.gif" DataTextField="LoadID"> <HeaderStyle Width="45px" /> <ItemStyle Width="45px" /> </telerik:GridButtonColumn>--%> <telerik:GridBoundColumn DataField="LoadID" DataType="System.Int32" HeaderText="LoadID" SortExpression="LoadID" UniqueName="LoadID" ReadOnly="true" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SupplierName" DataType="" HeaderText="Supplier Name" SortExpression="SupplierName" UniqueName="SupplierName" ReadOnly="true" Visible="true" AllowFiltering="true" FilterDelay="1000" CurrentFilterFunction="Contains" ShowFilterIcon="false" FilterControlWidth="95%"><HeaderStyle Width="150px"></HeaderStyle><ItemStyle Width="150px"></ItemStyle> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CompanyName" DataType="" HeaderText="Member" SortExpression="CompanyName" UniqueName="CompanyName" ReadOnly="true" Visible="true" AllowFiltering="true" FilterDelay="1000" CurrentFilterFunction="Contains" ShowFilterIcon="false" FilterControlWidth="95%" ><HeaderStyle Width="150px"></HeaderStyle><ItemStyle Width="150px"></ItemStyle> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PONumber" DataType="" HeaderText="PO Number" SortExpression="PONumber" UniqueName="PONumber" ReadOnly="true" Visible="true" AllowFiltering="true" FilterDelay="1000" AutoPostBackOnFilter="true" CurrentFilterFunction="EqualTo" ShowFilterIcon="false" FilterControlWidth="95%"><HeaderStyle Width="60px"></HeaderStyle><ItemStyle Width="60px"></ItemStyle> </telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="Freight" HeaderText="Freight" SortExpression="Freight" UniqueName="Freight" ReadOnly="false" Visible="true" HeaderStyle-Width="75px" ItemStyle-Width="75px" AllowFiltering="true" FilterDelay="1000" CurrentFilterFunction="EqualTo" ShowFilterIcon="false" FilterControlWidth="95%"> <ItemTemplate> <asp:Label ID="lblFreight" runat="server" Text='<%# Eval("Freight","{0:c}") %>' /> </ItemTemplate> <EditItemTemplate> <telerik:RadNumericTextBox incrementsettings-interceptarrowskeys="false" incrementsettings-interceptmousewheel="false" ID="txtFreight" runat="server" Type="currency" width="100%" EmptyMessageStyle-Width="70px" Dbvalue='<%# Eval("Freight") %>'></telerik:RadNumericTextBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="LoadNoAlpha" DataType="" HeaderText="Alpha" SortExpression="LoadNoAlpha" UniqueName="LoadNoAlpha" ReadOnly="false" Visible="true" ColumnEditorID="edi80px" AllowFiltering="true" FilterDelay="1000" CurrentFilterFunction="EqualTo" ShowFilterIcon="false" FilterControlWidth="95%" ><HeaderStyle Width="90px"></HeaderStyle><ItemStyle Width="90px"></ItemStyle></telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="LoadNo" HeaderText="LoadNo" SortExpression="LoadNo" UniqueName="LoadNo" ReadOnly="false" Visible="true" HeaderStyle-Width="90px" ItemStyle-Width="90px" AllowFiltering="true" FilterDelay="1000" CurrentFilterFunction="EqualTo" ShowFilterIcon="false" FilterControlWidth="95%"> <ItemTemplate> <asp:Label ID="lblLoadNo" runat="server" Text='<%# Eval("LoadNo") %>' /> </ItemTemplate> <EditItemTemplate> <telerik:RadNumericTextBox incrementsettings-interceptarrowskeys="false" incrementsettings-interceptmousewheel="false" ID="txtLoadNo" runat="server" Type="number" width="100%" NumberFormat-DecimalDigits="0" NumberFormat-GroupSeparator="" invalidstyleduration="100" Dbvalue='<%# Eval("LoadNo") %>'></telerik:RadNumericTextBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" UniqueName="Quantity" ReadOnly="false" Visible="true" HeaderStyle-Width="90px" ItemStyle-Width="90px" ItemStyle-BackColor="#FFFFCC" AllowFiltering="true" FilterDelay="1000" CurrentFilterFunction="EqualTo" ShowFilterIcon="false" FilterControlWidth="95%" > <ItemTemplate > <asp:Label ID="lblQuantity" runat="server" Text='<%# Eval("Quantity") %>' /> </ItemTemplate> <EditItemTemplate> <telerik:RadNumericTextBox incrementsettings-interceptarrowskeys="false" incrementsettings-interceptmousewheel="false" ID="txtQuantity" NumberFormat-DecimalDigits="3" runat="server" Type="number" width="100%" NumberFormat-GroupSeparator="" invalidstyleduration="100" Dbvalue='<%# Eval("Quantity") %>' > </telerik:RadNumericTextBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="DateReceived" HeaderText="Date Received" SortExpression="DateReceived" UniqueName="DateReceived" ReadOnly="false" Visible="true" HeaderStyle-Width="90px" ItemStyle-Width="90px" AllowFiltering="false" FilterDelay="1000" CurrentFilterFunction="EqualTo" ShowFilterIcon="false" FilterControlWidth="95%" ItemStyle-BackColor="#FFFFCC"> <ItemTemplate> <asp:Label ID="lblDateReceived" runat="server" Text='<%# Eval("DateReceived","{0:M/dd/yyyy}") %>' /> </ItemTemplate> <EditItemTemplate> <telerik:RadTextBox runat="server" Text='<%# Eval("DateReceived","{0:M/d/yyyy}") %>' Width="100%" ID="txtDateReceived" ></telerik:RadTextBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridButtonColumn DataTextFormatString="Delete {0}" ButtonType="ImageButton" UniqueName="DeleteRow" HeaderText="" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" CommandName="DeleteRow" DataTextField="LoadID" ImageUrl="Images/Delete.gif" ShowInEditForm="true" ConfirmText="Delete this load?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete Row"> <HeaderStyle Width="45px" /> <ItemStyle Width="45px" /> </telerik:GridButtonColumn> </Columns> <EditFormSettings><EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn></EditFormSettings> </MasterTableView> <ClientSettings AllowKeyboardNavigation="false"> <ClientEvents OnKeyPress="CatchKeyPress" ></ClientEvents> <Selecting AllowRowSelect="true" /> <Scrolling AllowScroll="true" UseStaticHeaders="true" /> </ClientSettings> <GroupingSettings CaseSensitive="false" /> <EditItemStyle BackColor="White" /> </telerik:RadGrid> <telerik:GridTextBoxColumnEditor ID="ediFreight" runat="server" TextBoxStyle-Width="70px"></telerik:GridTextBoxColumnEditor> <telerik:GridTextBoxColumnEditor ID="ediQuantity" runat="server" TextBoxStyle-Width="70px"></telerik:GridTextBoxColumnEditor> <telerik:GridTextBoxColumnEditor ID="edi80px" runat="server" TextBoxStyle-Width="80px"></telerik:GridTextBoxColumnEditor> <telerik:GridTextBoxColumnEditor ID="ediTest" runat="server" TextBoxStyle-Width="40px"></telerik:GridTextBoxColumnEditor> <telerik:GridDateTimeColumnEditor ID="ediDateReceived" runat="server" TextBoxStyle-Width="90px" ></telerik:GridDateTimeColumnEditor> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:csPrairielandAg %>" DeleteCommand="DELETE FROM [tblLoads] WHERE [LoadID] = @LoadID" InsertCommand="INSERT INTO [tblLoads] ([PONumber], [LoadNoAlpha], [LoadNo], [Freight], [Quantity], [Quarter], [Year], [DateReceived]) VALUES (@PONumber, @LoadNoAlpha, @LoadNo, @Freight, @Quantity, @Quarter, @Year, @DateReceived)" ProviderName="<%$ ConnectionStrings:csPrairielandAg.ProviderName %>" SelectCommand="SELECT a.LoadID, d.SupplierName,c.CompanyName, a.PONumber,a.Freight, a.LoadNoAlpha, a.LoadNo, a.Quantity, a.DateReceived,Quarter,Year FROM dbo.tblLoads AS a LEFT OUTER JOIN dbo.tblPurchases AS b ON a.PONumber = b.PONumber LEFT OUTER JOIN dbo.tblMembers AS c ON b.MemberID = c.MemberId LEFT OUTER JOIN dbo.tblSupplier AS d ON b.SupplierID = d.SupplierID WHERE (a.Quantity IS NULL) AND (b.Completed = 0) ORDER BY a.PONumber, a.LoadNoAlpha, a.LoadNo" UpdateCommand="UPDATE dbo.tblLoads SET Freight = @Freight, LoadNoAlpha = @LoadNoAlpha, LoadNo = @LoadNo, Quantity = @Quantity, Quarter = @Quarter, Year = @Year, DateReceived = @DateReceived WHERE (LoadID = @LoadID)"> <DeleteParameters> <asp:Parameter Name="LoadID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="PONumber" Type="Int32" /> <asp:Parameter Name="LoadNoAlpha" Type="String" /> <asp:Parameter Name="LoadNo" Type="Int32" /> <asp:Parameter Name="Freight" Type="Decimal" /> <asp:Parameter Name="Quantity" Type="Decimal" /> <asp:Parameter Name="Quarter" Type="Int16" /> <asp:Parameter Name="Year" Type="Int16" /> <asp:Parameter Name="DateReceived" Type="DateTime" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Freight" Type="Decimal" /> <asp:Parameter Name="LoadNoAlpha" Type="String" /> <asp:Parameter Name="LoadNo" Type="Int32" /> <asp:Parameter Name="Quantity" Type="Decimal" /> <asp:parameter Name="Quarter" Type="Int16" /> <asp:parameter Name="Year" Type="Int16" /> <asp:Parameter Name="DateReceived" Type="DateTime" /> <asp:Parameter Name="LoadID" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource> <br /> </div></asp:Content>aspx.vb code:
Imports SystemImports System.DataImports System.ConfigurationImports System.CollectionsImports System.WebImports System.Web.SecurityImports System.Web.UIImports System.Web.UI.WebControlsImports System.Web.UI.WebControls.WebPartsImports System.Web.UI.HtmlControlsImports Telerik.Web.UIImports System.Data.OleDbImports System.Data.SqlClientImports System.Collections.GenericImports System.Data.CommonImports System.DiagnosticsImports System.ComponentModelImports System.Web.SessionStateImports System.Web.MailImports System.Net.MailImports System.XmlPartial Public Class AddTonnage Inherits System.Web.UI.Page Dim strMode As String = "" Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load Dim strYear As Integer Dim strMonth As Integer Dim strQuarter As Integer For i As Integer = 0 To RadGrid1.PageSize - 1 RadGrid1.EditIndexes.Add(i) Next If strMonth >= 1 And strMonth <= 3 Then strQuarter = 1 ElseIf strMonth >= 4 And strMonth <= 6 Then strQuarter = 2 ElseIf strMonth >= 7 And strMonth <= 9 Then strQuarter = 2 Else strQuarter = 4 End If strYear = Year(Now()) txtQuarter.Text = strQuarter txtYear.Text = strYear ' RadGrid1.Enabled = True End Sub Protected Sub RadAjaxManager1_AjaxRequest(sender As Object, e As AjaxRequestEventArgs) 'For i As Integer = 0 To RadGrid1.PageSize ' RadGrid1.EditIndexes.Add(i) 'Next If RadGrid1.Enabled = True Then If RadGrid1.Items.Item(1).IsInEditMode = True Then RadGrid1.Items.Item(1).FireCommandEvent("Update", String.Empty) 'e.Item.FireCommandEvent("Update", String.Empty) End If End If RadGrid1.Rebind() End Sub Protected Sub RadGrid1_ItemCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.ItemCommand ' Dim dv As System.Data.DataView = DirectCast(SqlDataSource1.[Select](DataSourceSelectArguments.Empty), DataView) If e.CommandName = "DeleteRow" Then Dim image As ImageButton = DirectCast(e.CommandSource, ImageButton) Dim strLoadID = image.AlternateText.ToString strLoadID = Replace(strLoadID, "Delete ", "") Try Dim deleteQuery As String = "Delete from tblLoads where LoadID='" & strLoadID & "'" Dim strConn As String = ConfigurationManager.ConnectionStrings("csPrairielandAg").ConnectionString Using connection As New SqlConnection(strConn) connection.Open() Using Command As New SqlCommand(deleteQuery, connection) Command.CommandType = Data.CommandType.Text Command.CommandText = deleteQuery Command.ExecuteNonQuery() End Using connection.Close() End Using RadGrid1.Rebind() Catch ex As Exception Label1.Text = ex.Message Label1.Visible = True End Try End If If e.CommandName = "CopyPaste" Then Dim image As ImageButton = DirectCast(e.CommandSource, ImageButton) Dim strLoadID = image.AlternateText.ToString strLoadID = Replace(strLoadID, "Copy ", "") 'Dim gd As GridDataItem = DirectCast(e.Item, GridDataItem) Dim str As String = strLoadID Dim LoadsData As New DataSet() Dim ConnString As String = ConfigurationManager.ConnectionStrings("csPrairielandAg").ConnectionString Dim conn As New SqlConnection(ConnString) Dim adapter As New SqlDataAdapter() adapter.SelectCommand = New SqlCommand("SELECT LoadID,PONumber,Freight, LoadNoAlpha, LoadNo, Quantity, DateReceived,Quarter,Year FROM dbo.tblLoads ", conn) adapter.Fill(LoadsData, "tblLoads") Dim dt As DataTable = LoadsData.Tables("tblLoads") Dim rows As DataRow() = dt.[Select]("LoadID=" & str) Dim row As DataRow = dt.NewRow() 'row[0] = number; set the Primary key to desired For i As Integer = 1 To dt.Columns.Count - 8 row(i) = rows(0)(i) Next dt.Rows.Add(row) Dim cmdb As New SqlCommandBuilder(adapter) adapter.Update(LoadsData, "tblLoads") RadGrid1.Rebind() strMode = "Cancel" End If If e.CommandName = "RefreshGrid" Then 'For i As Integer = 0 To RadGrid1.PageSize ' RadGrid1.EditIndexes.Add(i) 'Next strMode = "Refresh" e.Item.OwnerTableView.Rebind() For Each dataItem As GridDataItem In RadGrid1.MasterTableView.Items dataItem.Edit = True Dim QuantityField As RadNumericTextBox = DirectCast(dataItem("Quantity").FindControl("txtQuantity"), RadNumericTextBox) If dataItem.ItemIndex >= 0 AndAlso dataItem.ItemIndex < RadGrid1.MasterTableView.Items.Count - 1 Then QuantityField.Attributes.Add("onkeydown", "return setFocus2('" + TryCast(RadGrid1.MasterTableView.Items(dataItem.ItemIndex + 1)("Quantity").Controls(1), RadNumericTextBox).ClientID + "','" + DirectCast(dataItem("Quantity").FindControl("txtQuantity"), RadNumericTextBox).ClientID + "','" + DirectCast(dataItem("DateReceived").FindControl("txtDateReceived"), RadTextBox).ClientID + "', event);") ElseIf dataItem.ItemIndex = RadGrid1.MasterTableView.Items.Count - 1 Then QuantityField.Attributes.Add("onkeydown", "lastFocus('" + DirectCast(dataItem("DateReceived").FindControl("txtDateReceived"), RadTextBox).ClientID + "', event);") End If Next ElseIf e.CommandName = "SaveChanges" Then RadGrid1_UpdateCommand(sender, e) e.Item.OwnerTableView.Rebind() strMode = "Save" ElseIf e.CommandName = "CancelChanges" Then strMode = "Cancel" ' RadGrid1.EditIndexes.Clear() e.Item.OwnerTableView.Rebind() ElseIf e.CommandName = "Sort" Then RadGrid1_UpdateCommand(sender, e) strMode = "Sort" ElseIf e.CommandName = "Page" Or e.CommandName = "Filter" Then RadGrid1_UpdateCommand(sender, e) strMode = "Page" ElseIf e.CommandName = "ChangePageSize" Then RadGrid1_UpdateCommand(sender, e) RadGrid1.EditIndexes.Clear() 'RadGrid1.Rebind() End If End Sub Protected Sub RadGrid1_PageIndexChanged(sender As Object, e As Telerik.Web.UI.GridPageChangedEventArgs) Handles RadGrid1.PageIndexChanged If RadGrid1.Items.Item(1).IsInEditMode = True Then e.Item.FireCommandEvent("Update", String.Empty) End If 'For i As Integer = 0 To RadGrid1.PageSize ' RadGrid1.EditIndexes.Add(i) 'Next 'RadGrid1.EditIndexes.Clear() 'RadGrid1.Rebind() End Sub Protected Sub RadGrid1_PageSizeChanged(sender As Object, e As Telerik.Web.UI.GridPageSizeChangedEventArgs) Handles RadGrid1.PageSizeChanged If RadGrid1.Items.Item(1).IsInEditMode = True Then e.Item.FireCommandEvent("Update", String.Empty) End If End Sub Protected Sub RadGrid1_PreRender(sender As Object, e As System.EventArgs) Handles RadGrid1.PreRender For i As Integer = 0 To RadGrid1.Items.Count RadGrid1.EditIndexes.Add(i) Next RadGrid1.Rebind() For Each dataItem As GridDataItem In RadGrid1.MasterTableView.Items Dim QuantityField As RadNumericTextBox = DirectCast(dataItem("Quantity").FindControl("txtQuantity"), RadNumericTextBox) If dataItem.ItemIndex >= 0 AndAlso dataItem.ItemIndex < RadGrid1.MasterTableView.Items.Count - 1 Then QuantityField.Attributes.Add("onkeydown", "return setFocus2('" + TryCast(RadGrid1.MasterTableView.Items(dataItem.ItemIndex + 1)("Quantity").Controls(1), RadNumericTextBox).ClientID + "','" + DirectCast(dataItem("Quantity").FindControl("txtQuantity"), RadNumericTextBox).ClientID + "','" + DirectCast(dataItem("DateReceived").FindControl("txtDateReceived"), RadTextBox).ClientID + "', event);") ElseIf dataItem.ItemIndex = RadGrid1.MasterTableView.Items.Count - 1 Then QuantityField.Attributes.Add("onkeydown", "lastFocus('" + DirectCast(dataItem("DateReceived").FindControl("txtDateReceived"), RadTextBox).ClientID + "', event);") End If Next 'RadGrid1.Rebind() Label1.Visible = "False" End Sub Protected Sub RadGrid1_UpdateCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.UpdateCommand If txtQuarter.Text <> "" And txtYear.Text <> "" Then If RadGrid1.Items.Count > 0 Then If RadGrid1.Items.Item(1).IsInEditMode = True Then For Each dataItem As GridDataItem In RadGrid1.MasterTableView.Items Dim newValues As New Hashtable() Dim eeditedItem As GridEditableItem = TryCast(e.Item, GridEditableItem) Dim intLoadID As Integer = dataItem.OwnerTableView.DataKeyValues(dataItem.ItemIndex)("LoadID") 'Dim EmployeeID As String = eeditedItem.OwnerTableView.DataKeyValues(eeditedItem.ItemIndex)("EmployeeID").ToString() RadGrid1.MasterTableView.ExtractValuesFromItem(newValues, dataItem) 'Dim BoundColumnValue As String = dataItem("txt").Text Dim txtFreight As RadNumericTextBox = DirectCast(dataItem("Freight").FindControl("txtFreight"), RadNumericTextBox) Dim txtLoadNo As RadNumericTextBox = DirectCast(dataItem("LoadNo").FindControl("txtLoadNo"), RadNumericTextBox) Dim txtQuantity As RadNumericTextBox = DirectCast(dataItem("Quantity").FindControl("txtQuantity"), RadNumericTextBox) Dim txtDateReceived As RadTextBox = DirectCast(dataItem("DateReceived").FindControl("txtDateReceived"), RadTextBox) SqlDataSource1.UpdateParameters("LoadID").DefaultValue = intLoadID SqlDataSource1.UpdateParameters("LoadNoAlpha").DefaultValue = newValues("LoadNoAlpha") SqlDataSource1.UpdateParameters("LoadNo").DefaultValue = txtLoadNo.Text SqlDataSource1.UpdateParameters("Freight").DefaultValue = txtFreight.Text SqlDataSource1.UpdateParameters("Quantity").DefaultValue = txtQuantity.Text SqlDataSource1.UpdateParameters("Quarter").DefaultValue = txtQuarter.Text SqlDataSource1.UpdateParameters("Year").DefaultValue = txtYear.Text SqlDataSource1.UpdateParameters("DateReceived").DefaultValue = txtDateReceived.Text Try SqlDataSource1.Update() ' RadGrid1.EditIndexes.Clear() Catch ex As Exception SetMessage(Server.HtmlEncode("Unable to update Load. Reason: " + ex.StackTrace).Replace("'", "'").Replace(vbCrLf, "<br />")) End Try Next Else Exit Sub End If Else SetMessage(Server.HtmlEncode("Quarter and Year is required.")) RadGrid1.Enabled = False End If End If RadGrid1.Rebind() RadGrid1.Enabled = True End Sub Private Sub SetMessage(ByVal message As String) Label1.Text = String.Format("<span style='color:red'>{0}</span>", message) End Sub Protected Sub btnGrid_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGrid.Click Dim strMessage As String = "" Dim strYear As Integer Dim strMonth As Integer Dim strQuarter As Integer If txtQuarter.Text = "" Or txtYear.Text = "" Then lblQuarterYear.Text = "Please enter a valid Quarter and Year to enable the grid." lblQuarterYear.ForeColor = Drawing.Color.Red lblQuarterYear.Visible = "true" Else strMonth = Month(Now()) If strMonth >= 1 And strMonth <= 3 Then strQuarter = 1 ElseIf strMonth >= 4 And strMonth <= 6 Then strQuarter = 2 ElseIf strMonth >= 7 And strMonth <= 9 Then strQuarter = 2 Else strQuarter = 4 End If If strQuarter <> txtQuarter.Text Then strMessage = "Quarter entered is not the current Quarter. " End If strYear = Year(Now()) If strYear <> txtYear.Text Then If strMessage = "" Then strMessage = "Year entered is not the current Year" Else strMessage = strMessage + "Year entered is not the current Year" End If End If If strMessage <> "" Then lblQuarterYear.Text = strMessage lblQuarterYear.Visible = True End If RadGrid1.EditIndexes.Clear() RadGrid1.Enabled = True For i As Integer = 0 To RadGrid1.PageSize RadGrid1.EditIndexes.Add(i) Next For Each dataItem As GridDataItem In RadGrid1.MasterTableView.Items Dim QuantityField As RadNumericTextBox = DirectCast(dataItem("Quantity").FindControl("txtQuantity"), RadNumericTextBox) If dataItem.ItemIndex >= 0 AndAlso dataItem.ItemIndex < RadGrid1.MasterTableView.Items.Count - 1 Then QuantityField.Attributes.Add("onkeydown", "return setFocus2('" + TryCast(RadGrid1.MasterTableView.Items(dataItem.ItemIndex + 1)("Quantity").Controls(1), RadNumericTextBox).ClientID + "','" + DirectCast(dataItem("Quantity").FindControl("txtQuantity"), RadNumericTextBox).ClientID + "','" + DirectCast(dataItem("DateReceived").FindControl("txtDateReceived"), RadTextBox).ClientID + "', event);") ElseIf dataItem.ItemIndex = RadGrid1.MasterTableView.Items.Count - 1 Then QuantityField.Attributes.Add("onkeydown", "lastFocus('" + DirectCast(dataItem("DateReceived").FindControl("txtDateReceived"), RadTextBox).ClientID + "', event);") End If Next strMode = "Refresh" 'RadGrid1.Columns(0).Visible = False 'RadGrid1.Columns(10).Visible = False 'RadGrid1.Rebind() End If End SubEnd Class