or
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title></title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> <link id="FavLink1" runat="server" rel="shortcut icon" href="~/Images/favicon.ico" type="image/x-icon" /> <link id="FavLink2" runat="server" rel="icon" href="~/Images/favicon.ico" type="image/ico" /></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" Runat="server"> <Scripts> <asp:ScriptReference Path="Scripts/jquery-1.8.2.min.js" /> </Scripts> </telerik:RadScriptManager> <telerik:RadStyleSheetManager ID="RadStyleSheetManager1" Runat="server"> </telerik:RadStyleSheetManager> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="False" /> <div style="text-align: left; width: 99.9%;"> <table style="width: 100%;"> <tr> <td colspan="3" style="HEIGHT: 5px; BACKGROUND-COLOR: navy"> </td> </tr> <tr> <td style="width:150px;"> <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/Logo.bmp" PostBackUrl="~/Default.aspx" ToolTip="Home" /> </td> <td style="text-align:left;width: 60%; padding-left: 10px;"> <h1>Help Desk</h1> </td> <td style="text-align:right; width:25%; vertical-align: bottom; font-size: x-small; padding-right: 2px;"> Logged in as: <asp:Label ID="lblUser" runat="server" EnableTheming="False" Font-Size="X-Small"></asp:Label> </td> </tr> <tr> <td colspan="3"> <telerik:RadMenu ID="RadMenu1" Runat="server" DataSourceID="SiteMapDataSource1" Skin="Default" Width="100%" style="z-index: 1000"> <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> </telerik:RadMenu> </td> </tr> </table> </div> <div style="width: 99.9%;"> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> </form></body></html>
window.onbeforeunload = function (evt) {$find("<%=RadAjaxManager1.ClientID %>").ajaxRequest();}<%@ 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>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 ClassPublic Class ExampleInfo Property ID as integer Property Text as String Property Category as stringEnd ClassPrivate _curCategory as string = ""Private Sub mainList_ItemDataBound(sender As Object, e As Telerik.Web.UI.RadListBoxItemEventArgs) Dim dataRow As ExampleInfo = DirectCast(e.Item.DataItem, ExampleInfo) Dim LocalCategory as string = dataRow.Category If _curCateogry <> LocalCategory Then Dim sepItem As New RadListBoxItem(LocalCategory, 0) sepItem.Enabled = False sepItem.CssClass = "listSeparator" sepItem.Attributes.Add("isSeparator", "True") mainList.Items.Add(sepItem) End If e.Item.Attributes.Add("isSeparator", "False") e.Item.ToolTip = dataRow.DescriptionEnd SubThe following code is used to render a Grid with a nested grid, all Data is bound using NeedDataSource
The issues are as follows
1) there is no expand icon displayed
2) Master grid is reset when the child grid is displayed, the columns that were set using code behind are reset
So What I need is the following, The Delete row Icon is displayed only if the data has a Status of 'A'
If no delete icon is displayed the we will show a icon for Sucess or Failed or Processing
if the Status is Failed, then we should be able to expand the grid to see the errors listed, again if any other status then no expand to be displayed.
There are no internal styles to be used.
Mark up Code
<telerik:RadGrid runat="server" ID="RadGrid2" EnableEmbeddedSkins="False" ShowStatusBar="True" AllowPaging="True" AutoGenerateColumns="False" CellSpacing="0"width="795px" GridLines="None" > <ActiveItemStyle CssClass="alternate" /> <MasterTableView > <ExpandCollapseColumn Visible="True" CollapseImageUrl="~/Images/collapse-large-silver.png" ExpandImageUrl="~/Images/expand-large-silver.png" /> <Columns> <telerik:GridBoundColumn DataField="ImportHeaderID" Display="False" UniqueName="ImportHeaderID" Visible="False" /> <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" HeaderStyle-Width="40px" ImageUrl="~/Images/icon-quick-link-delete.png" Text="Delete" UniqueName="DeleteColumn"> <HeaderStyle Width="40px" /> </telerik:GridButtonColumn> <telerik:GridHyperLinkColumn AllowFiltering="False" DataNavigateUrlFields="ImportHeaderID" DataNavigateUrlFormatString="~/DisplayFile.aspx?HeaderID={0}" DataTextField="ImportHeaderFilename" HeaderStyle-Width="200px" HeaderText="Filename" Target="_blank" UniqueName="Filename"> <HeaderStyle Width="200px" /> </telerik:GridHyperLinkColumn> <telerik:GridDateTimeColumn AllowFiltering="False" DataField="importHeaderFileLoadDate" HeaderStyle-Width="200px" HeaderText="Uploaded" ReadOnly="true" UniqueName="Uploaded"> <HeaderStyle Width="200px" /> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn AllowFiltering="False" DataField="importHeaderCreatedBy" HeaderStyle-Width="200px" HeaderText="CreatedBy" ReadOnly="true" UniqueName="CreatedBy"> <HeaderStyle Width="200px" /> </telerik:GridBoundColumn> </Columns> <NestedViewTemplate> <asp:Panel ID="Errors" runat="server"> <telerik:RadGrid ID="ErrorGrid" runat="server" EnableEmbeddedSkins="False" ShowStatusBar="True" AllowPaging="True" AutoGenerateColumns="False" CellSpacing="0" ShowHeader="False"> <MasterTableView Name="inner"> <Columns> <telerik:GridBoundColumn DataField="ErrorDescription" /> </Columns> </MasterTableView> </telerik:RadGrid> </asp:Panel> </NestedViewTemplate> <NoRecordsTemplate> <div>Please select filter Settings from above</div> </NoRecordsTemplate> </MasterTableView> <HeaderContextMenu EnableEmbeddedSkins="False"></HeaderContextMenu> </telerik:RadGrid>
Code behind
Protected Sub RadGrid2_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) Handles RadGrid2.NeedDataSource Dim ds As DataSet = DAL.DAL.SelectImportedFiles(0) RadGrid2.DataSource = dsEnd SubProtected Sub RadGrid2_ItemCreated(sender As Object, e As GridItemEventArgs) Handles RadGrid2.ItemCreated If TypeOf e.Item Is GridNestedViewItem Then AddHandler TryCast(e.Item.FindControl("ErrorGrid"), RadGrid).NeedDataSource, AddressOf Me.ErrorGrid_NeedDataSource End IfEnd SubProtected Sub ErrorGrid_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) Dim nestedItem As GridNestedViewItem = DirectCast(TryCast(sender, RadGrid).NamingContainer, GridNestedViewItem) Dim dataKeyValue As String = nestedItem.ParentItem.Item("ImportHeaderID").Text If IsNumeric(dataKeyValue) Then Dim ds As DataSet = DAL.DAL.SelectImportedErrors(CInt(dataKeyValue)) CType(sender, RadGrid).DataSource = ds End IfEnd SubPrivate Sub RadGrid2_ItemCommand(source As Object, e As GridCommandEventArgs) Handles RadGrid2.ItemCommand If e.CommandName = RadGrid.ExpandCollapseCommandName Then Dim item As GridDataItem = TryCast(e.Item, GridDataItem) If Not item.Expanded Then Dim nestedItem As GridNestedViewItem = DirectCast(item.ChildItem, GridNestedViewItem) Dim tempGrid As RadGrid = DirectCast(nestedItem.FindControl("ErrorGrid"), RadGrid) tempGrid.Rebind() End If End IfEnd SubProtected Sub RadGrid2_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles RadGrid2.ItemDataBound If e.Item.ItemType = GridItemType.AlternatingItem Or e.Item.ItemType = GridItemType.Item Then Dim ds As DataSet = TryCast(RadGrid2.DataSource, DataSet) If ds.Tables(0).Rows(DirectCast(e.Item, Telerik.Web.UI.GridDataItem).DataSetIndex)("ImportHeaderState") <> "A" Then Dim item As GridDataItem = DirectCast(e.Item, GridDataItem) Dim cellDelete As TableCell = item("DeleteColumn") cellDelete.Controls.Clear() Dim img As New Image Select Case ds.Tables(0).Rows(DirectCast(e.Item, Telerik.Web.UI.GridDataItem).DataSetIndex)("ImportHeaderState") Case "P" img.ImageUrl = "~/images/icon-notification-box.gif" Case "S" img.ImageUrl = "~/images/icon-notice-box.png" Case "F" img.ImageUrl = "~/images/icon_status_fail_26x26.gif" End Select cellDelete.Controls.Add(img) End If If ds.Tables(0).Rows(DirectCast(e.Item, Telerik.Web.UI.GridDataItem).DataSetIndex)("ImportHeaderState") <> "F" Then Dim item As GridDataItem = DirectCast(e.Item, GridDataItem) Dim cellExpand As TableCell = item("ExpandColumn") cellExpand.Controls.Clear() End If End IfEnd Sub