Selecting Row after Rebind and Scroll to Selected Row

7 posts, 2 answers
  1. Keith
    Keith avatar
    102 posts
    Member since:
    Mar 2015

    Posted 04 Aug Link to this post

    I have an ASP.Net page with a RadGrid within the RadPageLayout.

    There is a RadTextBox within the RadPageLayout.  A user will enter in the Serial Number into the RadTextBox and click the SCAN button which is a RadButton. Clicking on the SCAN button causes the VB.Net code-behind to a number of checks on the Serial Number entered and puts the results in a table that was bound to the RadGrid.  A Rebind is done with the RadGrid to show the results and the row with the Serial Number is selected.

    Once the Rebind is done and row is selected, I need the RadGrid to scroll to the selected row.  I am having trouble getting that to work.  I have tried what the Telerik documentation states about scrolling to selected row and did not work.  I have tried using SelectedIndexChanged event with RadGrid and did not work.

    Here is a portion of the code-behind for the Scan button click:

    ' Rebind Grid to show status of scan.
    rgInvntCycleReconcl.Rebind()
     
    ' Select Row with Serial Number
    Dim gdiItem As GridDataItem = rgInvntCycleReconcl.MasterTableView.FindItemByKeyValue("SERIAL_NO", strSerialNbr)
    gdiItem.Selected = True

    Here is the RadGrid in ASP.Net page:

    <telerik:RadGrid ID="rgInvntCycleReconcl" runat="server" GroupPanelPosition="Top" Height="246px" AutoGenerateColumns="False" AllowPaging="True" RenderMode="Auto"
        PageSize="2000" OnNeedDataSource="rgInvntCycleReconcl_NeedDataSource" OnSelectedIndexChanged="rgInvntCycleReconcl_SelectedIndexChanged">
        <GroupingSettings CollapseAllTooltip="Collapse all groups" />
        <ExportSettings IgnorePaging="True">
            <Pdf AllowPrinting="False">
            </Pdf>
            <Excel FileExtension="xlsx" Format="Xlsx" />
        </ExportSettings>
        <ClientSettings>
            <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="true" />
            <Selecting AllowRowSelect="True" />
        </ClientSettings>
        <MasterTableView EnableViewState="true" Font-Size="Medium" DataKeyNames="SERIAL_NO">
            <Columns>
                <telerik:GridBoundColumn DataField="SERIAL_NO" FilterControlAltText="Filter column column" HeaderText="Serial No." ReadOnly="True" UniqueName="SerialNbr">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="LOCATION" FilterControlAltText="Filter column1 column" HeaderText="Location" ReadOnly="True" UniqueName="Location">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="STATUS" FilterControlAltText="Filter column2 column" HeaderText="Status" ReadOnly="True" UniqueName="Status">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="SCAN_LOC" FilterControlAltText="Filter column3 column" HeaderText="Scan Location" ReadOnly="True" UniqueName="ScanLocation">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="WEIGHT_KGS" FilterControlAltText="Filter column4 column" HeaderText="Weight KGS" ReadOnly="True" UniqueName="WeightKGS">
                </telerik:GridBoundColumn>
            </Columns>
        </MasterTableView>
        <PagerStyle Mode="NextPrevNumericAndAdvanced" />
    </telerik:RadGrid>

    Please help!

    Sincerely,

    Keith Jackson

  2. Answer
    Konstantin Dikov
    Admin
    Konstantin Dikov avatar
    1796 posts

    Posted 09 Aug Link to this post

    Hello Keith,

    For achieving the desired result you could get reference to the selected item when the page loads and manually change the scroll position. The following code should work for most cases:
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function pageLoad() {
                var grid = $find("<%=RadGrid1.ClientID%>");
                var master = grid.get_masterTableView();
                var activeItemID = document.getElementById("<%=ActiveItemID.ClientID%>").value;
                if (master.get_selectedItems().length > 0) {
                    var item = master.get_selectedItems()[0];
                    var rowElement = item.get_element();
                    var offset = rowElement.offsetTop;
                    setScroll(grid, offset);
                }
            }
     
            function setScroll(grid, scrollTop) {
                var dataDiv = $telerik.findElement(grid.get_element(), grid.get_id() + "_GridData");
                dataDiv.scrollTop = scrollTop;
            }
        </script>
    </telerik:RadCodeBlock>

    Hope this helps.


    Regards,
    Konstantin Dikov
    Telerik by Progress
    Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Keith
    Keith avatar
    102 posts
    Member since:
    Mar 2015

    Posted 09 Aug in reply to Konstantin Dikov Link to this post

    Thanks Konstantin!  

    With the exception of having to remove the line with "var activeItemID" from the code because it did not look it was used and I did not know what it was for, it worked as I wanted it to work.

    The only issue I have found was that the bottom part of the grid shows a dark line when the grid loads.  See the attached screenshot and note the area circled in RED.  It happens under IE, Chrome and FireFox.  The DataSource for the RadGrid is a DataSet.  This only happens when the table used to populate the DataSet is cleared and populated with new data.  If a record is updated or inserted in the table then it no longer occurs until the table is cleared and populated with new data.  Also this problem only occurs on the PC with Windows.  I tried loading the page in Chrome on the iPhone 6S and did not show the problem. I have tried using ScrollHeight in ClientSettings in the RadGrid to resolve it but it did not resolve it.

    What is causing the problem and what to do to resolve it?

    Sincerely,

    Keith Jackson

  5. Konstantin Dikov
    Admin
    Konstantin Dikov avatar
    1796 posts

    Posted 12 Aug Link to this post

    Hello Keith,

    I have tested your RadGrid settings locally with our latest version and no issue is observed, which could indicate that you have custom styles that are breaking the structure of the grid. 

    Can you please remove all custom styles and see if this resolves the problem? If not, please elaborate which version of the controls you are using, so we can test with the same one locally.

    Looking forward to your reply.


    Regards,
    Konstantin Dikov
    Telerik by Progress
    Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
  6. Keith
    Keith avatar
    102 posts
    Member since:
    Mar 2015

    Posted 12 Aug in reply to Konstantin Dikov Link to this post

    I am using version 2016.2.504.45 of the Telerik controls.

    Please help!

    Here is my ASP.Net page:

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="InventoryCycleReconciliation.aspx.vb" Inherits="InventoryCycleReconciliation" %>
     
    <%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
     
    <!DOCTYPE html>
     
    <head runat="server">
        <title></title>
        <style type="text/css">
            .auto-style1 {
                width: 960px;
                height: 220px;
            }
            .UnknownClass {
                background-color: #FF0000  /* red */;
            }
            .DifLocClass {
                background-color: yellow;
            }
            .MatchClass {
                background-color: #00FF00  /* green */;
            }
            .UnscannedClass {
                background-color: white;
            }
            body {
                margin: 0;
                padding: 0;
            }
            html {
                font-size: 120%;
                float: left;
                text-align: left;
                margin-left: 0px;
                line-height: 1.2;
            }
            html .RadMenu .rmLink,
            html .RadMenu .rmHorizontal .rmText {
                float: none;
                padding: 0;
                text-align: center;
            }   
            @media (min-width:60em){
                html {
                    font-size: 90%;
                    padding-top: 10px;
                }
            }
            @media (max-width:360px){
                .RadGrid {
                    width: 300px;
                }
            }
            @media (min-width:361px) and (max-width:768px){
                .RadGrid {
                    width: 360px;
                }
            }
            @media (min-width:769px) and (max-width:1024px){
                .RadGrid {
                    width: 770px;
                }
            }
            @media (min-width:1025px) and (max-width:1280px){
                .RadGrid {
                    width: 955px;
                }
            }
            @media (min-width:1281px){
                .RadGrid {
                    width: 955px;
                }
            }
        </style>
        <meta name="viewport" content="width=device-width, initial-scale=1" />
     
        <script type="text/javascript" src="/scripts/jquery.min.js"></script>
        <script type = "text/javascript" >
            function preventBack() { window.history.forward(); }
            setTimeout("preventBack()", 3);
            window.onunload = function () { null };
        </script>
        <script type = "text/javascript" >
            function GridCreated(sender, eventArgs) {
                //gets the main table scrollArea HTLM element 
                var scrollArea = document.getElementById(sender.get_element().id + "_GridData");
                var row = sender.get_masterTableView().get_selectedItems()[0];
     
                //if the position of the selected row is below the viewable grid area
                alert("row = " + row);
                if (row) {
                    if ((row.get_element().offsetTop - scrollArea.scrollTop) + row.get_element().offsetHeight + 5 > scrollArea.offsetHeight) {
                        //scroll down to selected row 
                        scrollArea.scrollTop = scrollArea.scrollTop + ((row.get_element().offsetTop - scrollArea.scrollTop) +
                        row.get_element().offsetHeight - scrollArea.offsetHeight) + row.get_element().offsetHeight;
                    }
                        //if the position of the the selected row is above the viewable grid area 
                    else if ((row.get_element().offsetTop - scrollArea.scrollTop) < 0) {
                        //scroll the selected row to the top 
                        scrollArea.scrollTop = row.get_element().offsetTop;
                    }
                }
            }
        </script>
    </head>
    <body style="background-color: #3A4459">
        <form id="form1" runat="server">
            <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
                <Scripts>
                    <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js">
                    </asp:ScriptReference>
                    <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js">
                    </asp:ScriptReference>
                    <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js">
                    </asp:ScriptReference>
                </Scripts>
            </telerik:RadScriptManager>
            <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
                <script type="text/javascript">
                    function pageLoad() {
                        var grid = $find("<%=rgInvntCycleReconcl.ClientID%>");
                        var master = grid.get_masterTableView();
                        if (master.get_selectedItems().length > 0) {
                            var item = master.get_selectedItems()[0];
                            var rowElement = item.get_element();
                            var offset = rowElement.offsetTop;
                            setScroll(grid, offset);
                        }
                    }
     
                    function setScroll(grid, scrollTop) {
                        var dataDiv = $telerik.findElement(grid.get_element(), grid.get_id() + "_GridData");
                        dataDiv.scrollTop = scrollTop;
                    }
                </script>
            </telerik:RadCodeBlock>
            <div>
            <telerik:RadPageLayout ID="Radpagelayout1" runat="server" GridType="Fluid" ForeColor="White" ShowGrid="False" EnableAjaxSkinRendering="False" EnableEmbeddedBaseStylesheet="True" EnableEmbeddedScripts="False" EnableEmbeddedSkins="False" HtmlTag="Div" RegisterWithScriptManager="True" RenderMode="Classic">
                <Rows>
                    <telerik:LayoutRow Height="40px" HiddenXs="true" HiddenSm="true" HiddenMd="true">
                        <Columns>
                            <telerik:LayoutColumn Span="5" SpanMd="5" SpanSm="10">
                                <img alt="RSDC of Michigan" class="auto-style1" src="/images/RSDC_Logo2.jpg" />
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow Height="40px" HiddenLg="true" HiddenXl="true">
                        <Columns>
                            <telerik:LayoutColumn Span="7" SpanMd="9" SpanSm="12" SpanXs="12">
                                <br />
                                <telerik:RadButton ID="rbtnHome" runat="server" Text="HOME" RenderMode="Lightweight">
                                </telerik:RadButton>
                                    
                                <telerik:RadButton ID="rbtnLogOut" runat="server" Text="LOGOUT" RenderMode="Lightweight">
                                </telerik:RadButton>
                                <br />
                                <br />
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow Height="40px" HiddenXs="true" HiddenSm="true" HiddenMd="true">
                        <Columns>
                            <telerik:LayoutColumn Span="5" SpanMd="8" SpanSm="12">
                                <br />
                                    <telerik:RadMenu ID="RadMenu1" Runat="server" Width="960px" Style="z-index: 50">
                                        <Items>
                                            <telerik:RadMenuItem runat="server" Font-Bold="True" Font-Size="14pt" NavigateUrl="CustomerPortal" Text="Home" Width="475px">
                                            </telerik:RadMenuItem>
                                            <telerik:RadMenuItem runat="server" IsSeparator="True" Text="Sep">
                                            </telerik:RadMenuItem>
                                            <telerik:RadMenuItem runat="server" Font-Bold="True" Font-Size="14pt" ForeColor="Red" Text="Logout" Width="475px">
                                            </telerik:RadMenuItem>
                                        </Items>
                                    </telerik:RadMenu>
                                <br />
                                <br />
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow Height="40px">
                        <Columns>
                            <telerik:LayoutColumn Span="6" SpanMd="6" SpanSm="12">
                                <asp:Label ID="Label2" runat="server" Font-Bold="True" ForeColor="White" Width="300px" Text="Inventory Cycle Reconciliation"></asp:Label>
                                <br />
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow Height="40px">
                        <Columns>
                            <telerik:LayoutColumn Span="3" SpanXl="1" SpanLg="1" SpanMd="2" SpanSm="2">
                                    Bay
                            </telerik:LayoutColumn>
                            <telerik:LayoutColumn Span="3" SpanXl="2" SpanLg="2" SpanMd="2" SpanSm="4" SpanXs="4">
                                <telerik:RadComboBox ID="rcbbBay" runat="server" MaxHeight="250px" AutoPostBack="true" Width="115px" RenderMode="Lightweight">
                                    <Items>
                                        <telerik:RadComboBoxItem runat="server" Text="A - Bay" Value="A - Bay" />
                                        <telerik:RadComboBoxItem runat="server" Text="B - Bay" Value="B - Bay" />
                                        <telerik:RadComboBoxItem runat="server" Text="C - Bay" Value="C - Bay" />
                                        <telerik:RadComboBoxItem runat="server" Text="D - Bay" Value="D - Bay" />
                                        <telerik:RadComboBoxItem runat="server" Text="E - Bay" Value="E - Bay" />
                                        <telerik:RadComboBoxItem runat="server" Text="F - Bay" Value="F - Bay" />
                                        <telerik:RadComboBoxItem runat="server" Text="G - Bay" Value="G - Bay" />
                                    </Items>
                                </telerik:RadComboBox>
                            </telerik:LayoutColumn>
                            <telerik:LayoutColumn Span="3" SpanXl="3" SpanLg="3" SpanMd="3" SpanSm="3">
                                <telerik:RadTextBox ID="rtxtSerialNbr" Runat="server" EmptyMessage="Enter Serial#" Width="125px" RenderMode="Lightweight">
                                    <EmptyMessageStyle Resize="None"></EmptyMessageStyle>
                                    <ReadOnlyStyle Resize="None"></ReadOnlyStyle>
                                    <FocusedStyle Resize="None"></FocusedStyle>
                                    <DisabledStyle Resize="None"></DisabledStyle>
                                    <InvalidStyle Resize="None"></InvalidStyle>
                                    <HoveredStyle Resize="None"></HoveredStyle>
                                    <EnabledStyle Resize="None"></EnabledStyle>
                                </telerik:RadTextBox>
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow Height="40px">
                        <Columns>
                            <telerik:LayoutColumn Span="3" SpanXl="1" SpanLg="1" SpanMd="2" SpanSm="2">
                                Column
                            </telerik:LayoutColumn>
                            <telerik:LayoutColumn Span="3" SpanXl="2" SpanLg="2" SpanMd="2" SpanSm="4" SpanXs="4">
                                <telerik:RadComboBox ID="rcbbCol1" runat="server" MaxHeight="250px" Width="115px" AutoPostBack="true" RenderMode="Lightweight">
                                </telerik:RadComboBox>
                            </telerik:LayoutColumn>
                            <telerik:LayoutColumn Span="3" SpanMd="3" SpanSm="3">
                                <telerik:RadButton ID="rbtnScan" runat="server" Text="SCAN" RenderMode="Lightweight" ValidationGroup="Submit">
                                </telerik:RadButton>
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow>
                        <Columns>
                            <telerik:LayoutColumn Span="3" SpanXl="1" SpanLg="1" SpanMd="2" SpanSm="2">
                                    Row
                            </telerik:LayoutColumn>
                            <telerik:LayoutColumn Span="3" SpanXl="2" SpanLg="2" SpanMd="2" SpanSm="4" SpanXs="4">
                                <telerik:RadComboBox ID="rcbbRow1" runat="server" MaxHeight="250px" Width="115px" AutoPostBack="true" RenderMode="Lightweight">
                                    <Items>
                                        <telerik:RadComboBoxItem runat="server" Text="01" Value="01" />
                                        <telerik:RadComboBoxItem runat="server" Text="02" Value="02" />
                                        <telerik:RadComboBoxItem runat="server" Text="03" Value="03" />
                                        <telerik:RadComboBoxItem runat="server" Text="04" Value="04" />
                                        <telerik:RadComboBoxItem runat="server" Text="05" Value="05" />
                                        <telerik:RadComboBoxItem runat="server" Text="06" Value="06" />
                                        <telerik:RadComboBoxItem runat="server" Text="07" Value="07" />
                                        <telerik:RadComboBoxItem runat="server" Text="08" Value="08" />
                                        <telerik:RadComboBoxItem runat="server" Text="09" Value="09" />
                                        <telerik:RadComboBoxItem runat="server" Text="10" Value="10" />
                                        <telerik:RadComboBoxItem runat="server" Text="11" Value="11" />
                                        <telerik:RadComboBoxItem runat="server" Text="12" Value="12" />
                                        <telerik:RadComboBoxItem runat="server" Text="13" Value="13" />
                                        <telerik:RadComboBoxItem runat="server" Text="14" Value="14" />
                                        <telerik:RadComboBoxItem runat="server" Text="15" Value="15" />
                                        <telerik:RadComboBoxItem runat="server" Text="16" Value="16" />
                                        <telerik:RadComboBoxItem runat="server" Text="17" Value="17" />
                                        <telerik:RadComboBoxItem runat="server" Text="18" Value="18" />
                                        <telerik:RadComboBoxItem runat="server" Text="19" Value="19" />
                                        <telerik:RadComboBoxItem runat="server" Text="20" Value="20" />
                                        <telerik:RadComboBoxItem runat="server" Text="21" Value="21" />
                                        <telerik:RadComboBoxItem runat="server" Text="22" Value="22" />
                                        <telerik:RadComboBoxItem runat="server" Text="23" Value="23" />
                                        <telerik:RadComboBoxItem runat="server" Text="24" Value="24" />
                                        <telerik:RadComboBoxItem runat="server" Text="25" Value="25" />
                                        <telerik:RadComboBoxItem runat="server" Text="26" Value="26" />
                                        <telerik:RadComboBoxItem runat="server" Text="27" Value="27" />
                                        <telerik:RadComboBoxItem runat="server" Text="28" Value="28" />
                                        <telerik:RadComboBoxItem runat="server" Text="29" Value="29" />
                                        <telerik:RadComboBoxItem runat="server" Text="30" Value="30" />
                                        <telerik:RadComboBoxItem runat="server" Text="31" Value="31" />
                                        <telerik:RadComboBoxItem runat="server" Text="32" Value="32" />
                                        <telerik:RadComboBoxItem runat="server" Text="33" Value="33" />
                                        <telerik:RadComboBoxItem runat="server" Text="34" Value="34" />
                                        <telerik:RadComboBoxItem runat="server" Text="35" Value="35" />
                                        <telerik:RadComboBoxItem runat="server" Text="36" Value="36" />
                                        <telerik:RadComboBoxItem runat="server" Text="37" Value="37" />
                                        <telerik:RadComboBoxItem runat="server" Text="38" Value="38" />
                                        <telerik:RadComboBoxItem runat="server" Text="39" Value="39" />
                                        <telerik:RadComboBoxItem runat="server" Text="40" Value="40" />
                                        <telerik:RadComboBoxItem runat="server" Text="41" Value="41" />
                                        <telerik:RadComboBoxItem runat="server" Text="42" Value="42" />
                                        <telerik:RadComboBoxItem runat="server" Text="43" Value="43" />
                                        <telerik:RadComboBoxItem runat="server" Text="44" Value="44" />
                                        <telerik:RadComboBoxItem runat="server" Text="45" Value="45" />
                                        <telerik:RadComboBoxItem runat="server" Text="46" Value="46" />
                                        <telerik:RadComboBoxItem runat="server" Text="47" Value="47" />
                                        <telerik:RadComboBoxItem runat="server" Text="48" Value="48" />
                                        <telerik:RadComboBoxItem runat="server" Text="49" Value="49" />
                                        <telerik:RadComboBoxItem runat="server" Text="50" Value="50" />
                                        <telerik:RadComboBoxItem runat="server" Text="51" Value="51" />
                                        <telerik:RadComboBoxItem runat="server" Text="52" Value="52" />
                                        <telerik:RadComboBoxItem runat="server" Text="53" Value="53" />
                                        <telerik:RadComboBoxItem runat="server" Text="54" Value="54" />
                                        <telerik:RadComboBoxItem runat="server" Text="55" Value="55" />
                                        <telerik:RadComboBoxItem runat="server" Text="56" Value="56" />
                                        <telerik:RadComboBoxItem runat="server" Text="57" Value="57" />
                                        <telerik:RadComboBoxItem runat="server" Text="58" Value="58" />
                                        <telerik:RadComboBoxItem runat="server" Text="59" Value="59" />
                                        <telerik:RadComboBoxItem runat="server" Text="60" Value="60" />
                                        <telerik:RadComboBoxItem runat="server" Text="61" Value="61" />
                                        <telerik:RadComboBoxItem runat="server" Text="62" Value="62" />
                                        <telerik:RadComboBoxItem runat="server" Text="63" Value="63" />
                                        <telerik:RadComboBoxItem runat="server" Text="64" Value="64" />
                                        <telerik:RadComboBoxItem runat="server" Text="65" Value="65" />
                                        <telerik:RadComboBoxItem runat="server" Text="66" Value="66" />
                                        <telerik:RadComboBoxItem runat="server" Text="67" Value="67" />
                                        <telerik:RadComboBoxItem runat="server" Text="68" Value="68" />
                                        <telerik:RadComboBoxItem runat="server" Text="69" Value="69" />
                                        <telerik:RadComboBoxItem runat="server" Text="70" Value="70" />
                                        <telerik:RadComboBoxItem runat="server" Text="81" Value="81" />
                                        <telerik:RadComboBoxItem runat="server" Text="82" Value="82" />
                                        <telerik:RadComboBoxItem runat="server" Text="83" Value="83" />
                                        <telerik:RadComboBoxItem runat="server" Text="84" Value="84" />
                                        <telerik:RadComboBoxItem runat="server" Text="85" Value="85" />
                                        <telerik:RadComboBoxItem runat="server" Text="86" Value="86" />
                                        <telerik:RadComboBoxItem runat="server" Text="87" Value="87" />
                                        <telerik:RadComboBoxItem runat="server" Text="88" Value="88" />
                                        <telerik:RadComboBoxItem runat="server" Text="89" Value="89" />
                                        <telerik:RadComboBoxItem runat="server" Text="90" Value="90" />
                                        <telerik:RadComboBoxItem runat="server" Text="91" Value="91" />
                                        <telerik:RadComboBoxItem runat="server" Text="92" Value="92" />
                                        <telerik:RadComboBoxItem runat="server" Text="93" Value="93" />
                                        <telerik:RadComboBoxItem runat="server" Text="94" Value="94" />
                                        <telerik:RadComboBoxItem runat="server" Text="95" Value="95" />
                                        <telerik:RadComboBoxItem runat="server" Text="96" Value="96" />
                                        <telerik:RadComboBoxItem runat="server" Text="97" Value="97" />
                                        <telerik:RadComboBoxItem runat="server" Text="98" Value="98" />
                                        <telerik:RadComboBoxItem runat="server" Text="99" Value="99" />
                                    </Items>
                                </telerik:RadComboBox>
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow Height="40px">
                        <Columns>
                            <telerik:LayoutColumn Span="4" SpanXl="12" SpanLg="12" SpanMd="9" SpanSm="10" SpanXs="8">
                                <br />
                                <telerik:RadLabel ID="rlblMessage" runat="server" RenderMode="Lightweight"></telerik:RadLabel>
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                    <telerik:LayoutRow Height="40px">
                        <Columns>
                            <telerik:LayoutColumn Span="4" SpanXl="12" SpanLg="12" SpanMd="9" SpanSm="10" SpanXs="8">
                                <br />
                                <telerik:RadGrid ID="rgInvntCycleReconcl" runat="server" GroupPanelPosition="Top" Height="246px" AutoGenerateColumns="False" AllowPaging="false" RenderMode="Auto"
                                     OnNeedDataSource="rgInvntCycleReconcl_NeedDataSource">
                                    <GroupingSettings CollapseAllTooltip="Collapse all groups" />
                                    <ExportSettings IgnorePaging="True">
                                        <Pdf AllowPrinting="False">
                                        </Pdf>
                                        <Excel FileExtension="xlsx" Format="Xlsx" />
                                    </ExportSettings>
                                    <ClientSettings>
                                        <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="true" />
                                        <Selecting AllowRowSelect="True" />
                                    </ClientSettings>
                                    <MasterTableView EnableViewState="true" Font-Size="Medium" DataKeyNames="SERIAL_NO">
                                        <Columns>
                                            <telerik:GridBoundColumn DataField="SERIAL_NO" FilterControlAltText="Filter column column" HeaderText="Serial No." ReadOnly="True" UniqueName="SerialNbr">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn DataField="LOCATION" FilterControlAltText="Filter column1 column" HeaderText="Location" ReadOnly="True" UniqueName="Location">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn DataField="STATUS" FilterControlAltText="Filter column2 column" HeaderText="Status" ReadOnly="True" UniqueName="Status">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn DataField="SCAN_LOC" FilterControlAltText="Filter column3 column" HeaderText="Scan Location" ReadOnly="True" UniqueName="ScanLocation">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn DataField="WEIGHT_KGS" FilterControlAltText="Filter column4 column" HeaderText="Weight KGS" ReadOnly="True" UniqueName="WeightKGS">
                                            </telerik:GridBoundColumn>
                                        </Columns>
                                    </MasterTableView>
                                    <PagerStyle Mode="NextPrevNumericAndAdvanced" />
                                </telerik:RadGrid>
                            </telerik:LayoutColumn>
                        </Columns>
                    </telerik:LayoutRow>
                </Rows>
            </telerik:RadPageLayout>
            </div>
        </form>
    </body>
    </html>

    Here is the VB.Net code-behind:

    Imports System.Data
    Imports System.Text.RegularExpressions
    Imports Telerik.Web.UI
     
    Partial Class InventoryCycleReconciliation
        Inherits System.Web.UI.Page
     
        Private sql As String
        Private bHasError As Boolean = False, strErrorMsg As String
        Private strSQLResult As String
        Private myDSData As DataSet
     
        Private Sub SetFilterFields()
            Try
                Dim ABayColNbrList As New ArrayList, BBayColNbrList As New ArrayList, CBayColNbrList As New ArrayList
                Dim DEFGBayColNbrList As New ArrayList
                Dim strBay As String = "A"
                Dim strColumn As String = "", strRow As String = ""
                Dim strScanLoc As String = ""
     
                Dim strUser As String = "", strDecUser As String = ""
     
                If Not Session("UserName") Is Nothing Then
                    strUser = CType(Session("UserName"), String)
     
                    strDecUser = DataEncryption.base64Decode(strUser)
     
                    strDecUser = DataEncryption.base64Decode(strDecUser)
     
                    strDecUser = DataEncryption.base64Decode(strDecUser)
     
                    strUser = strDecUser
     
                End If
     
                ' Display Table name for specific users.
                'If strUser = "KMJ9263" Or strUser = "DLM4221" Then
                '    lblTable.Text = "( VIEW_PLEX_ACTIVE_INVENTORY )"
                'End If
     
                ' A - Bay Column Number List
                For x As Integer = 1 To 4
                    ABayColNbrList.Add(x.ToString("00"))
                Next
     
                ' B - Bay Column Number List
                For x As Integer = 5 To 8
                    BBayColNbrList.Add(x.ToString("00"))
                Next
     
                ' C - Bay Column Number List
                For x As Integer = 9 To 12
                    CBayColNbrList.Add(x.ToString("00"))
                Next
     
                ' Column Number List for D-Bay, E-Bay, F-Bay, and G-Bay.
                For x As Integer = 1 To 26
                    DEFGBayColNbrList.Add(x.ToString("00"))
                Next
     
                ' Save Column Numbers in Session variables.
                Session("INVNTRYCYCLERECONCLABAYCOLNBRS") = ABayColNbrList
                Session("INVNTRYCYCLERECONCLBBAYCOLNBRS") = BBayColNbrList
                Session("INVNTRYCYCLERECONCLCBAYCOLNBRS") = CBayColNbrList
                Session("INVNTRYCYCLERECONCLDEFGBAYCOLNBRS") = DEFGBayColNbrList
     
                ' Bay
                If Not (Session("INVNTRYCYCLERECONCLBAY") Is Nothing) Then
                    rcbbBay.Items.FindItemByValue(CType(Session("INVNTRYCYCLERECONCLBAY"), String)).Selected = True
                    strBay = Left(rcbbBay.SelectedValue.Trim, 1)
                End If
     
                ' Column Range
                If rcbbCol1.Items.Count > 0 Then
                    rcbbCol1.DataSource = Nothing
                    rcbbCol1.Items.Clear()
                End If
                Select Case strBay
                    Case "A"
                        rcbbCol1.DataSource = ABayColNbrList
                        rcbbCol1.DataBind()
     
                    Case "B"
                        rcbbCol1.DataSource = BBayColNbrList
                        rcbbCol1.DataBind()
     
                    Case "C"
                        rcbbCol1.DataSource = CBayColNbrList
                        rcbbCol1.DataBind()
     
                    Case Else
                        rcbbCol1.DataSource = DEFGBayColNbrList
                        rcbbCol1.DataBind()
     
                End Select
                If Not (Session("INVNTRYCYCLERECONCLCOLNBR") Is Nothing) Then
                    rcbbCol1.Items.FindItemByValue(CType(Session("INVNTRYCYCLERECONCLCOLNBR"), String)).Selected = True
                End If
                strColumn = rcbbCol1.SelectedValue.ToString()
     
                ' Row Range
                If strBay = "D" Or strBay = "E" Or strBay = "F" Or strBay = "G" Then
                    rcbbRow1.Enabled = False
                    strScanLoc = strBay & strColumn
                Else
                    If Not (Session("INVNTRYCYCLERECONCLROWNBR") Is Nothing) Then
                        rcbbRow1.Items.FindItemByValue(CType(Session("INVNTRYCYCLERECONCLROWNBR"), String)).Selected = True
                    End If
                    strRow = rcbbRow1.SelectedValue.ToString()
                    strScanLoc = strBay & strColumn & "R" & strRow
                End If
     
                ' Set up SQL statement for Grid.
                sql = "SELECT SERIAL_NO, LOCATION, STATUS, SCAN_LOC, WEIGHT_KGS FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY WHERE LOCATION = '" & strScanLoc & "' OR SCAN_LOC = '" & strScanLoc & "' ORDER BY SERIAL_NO"
                Session("INVNTRYCYCLERECONCLSQLSTRING") = sql
     
                ' Set focus to Serial Number textbox
                rtxtSerialNbr.Focus()
                rtxtSerialNbr.Attributes.Add("onfocus", "this.select();")
     
     
            Catch ex As Exception
                strErrorMsg = "Procedure: SetFilterFields() - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
     
        End Sub
     
        Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
            Try
                Dim strUser As String = ""
                Dim strDecUser As String = ""
                Dim strAppName As String = "IPMENUINVNTRYCYCLERECONCLTN"
     
                If Request.IsAuthenticated Then
                    'If IsPostBack Then
                    'End If
                    If Not Session("UserName") Is Nothing Then
                        strUser = CType(Session("UserName"), String)
     
                        strDecUser = DataEncryption.base64Decode(strUser)
     
                        strDecUser = DataEncryption.base64Decode(strDecUser)
     
                        strDecUser = DataEncryption.base64Decode(strDecUser)
     
                        strUser = strDecUser
     
                    End If
     
                    If LoginValidation.IsValidAppAccess(strUser, strAppName) Then
                        UserFunctions.UpdateAppActivity(strUser, strAppName)
                        SetFilterFields()
                    Else
                        Response.Redirect("CustomerPortal")
                    End If
                Else
                    FormsAuthentication.RedirectToLoginPage()
                End If
     
            Catch ex As Exception
                strErrorMsg = "Procedure: Page_Init - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
        End Sub
     
     
        Protected Sub rcbbBay_SelectedIndexChanged(sender As Object, e As RadComboBoxSelectedIndexChangedEventArgs) Handles rcbbBay.SelectedIndexChanged
            Try
                Dim ABayColNbrList As New ArrayList, BBayColNbrList As New ArrayList, CBayColNbrList As New ArrayList
                Dim DEFGBayColNbrList As New ArrayList
                Dim strBay As String = ""
                Dim strColumn As String = "", strRow As String = ""
                Dim strScanLoc As String = ""
     
                ' Column Number List for each Bay.
                ABayColNbrList = CType(Session("INVNTRYCYCLERECONCLABAYCOLNBRS"), ArrayList)
                BBayColNbrList = CType(Session("INVNTRYCYCLERECONCLBBAYCOLNBRS"), ArrayList)
                CBayColNbrList = CType(Session("INVNTRYCYCLERECONCLCBAYCOLNBRS"), ArrayList)
                DEFGBayColNbrList = CType(Session("INVNTRYCYCLERECONCLDEFGBAYCOLNBRS"), ArrayList)
     
                ' Bay
                strBay = Left(rcbbBay.SelectedValue.Trim, 1)
     
                ' Column Range
                If rcbbCol1.Items.Count > 0 Then
                    rcbbCol1.DataSource = Nothing
                    rcbbCol1.Items.Clear()
                End If
                Select Case strBay
                    Case "A"
                        rcbbCol1.DataSource = ABayColNbrList
                        rcbbCol1.DataBind()
                        rcbbRow1.Enabled = True
     
                    Case "B"
                        rcbbCol1.DataSource = BBayColNbrList
                        rcbbCol1.DataBind()
                        rcbbRow1.Enabled = True
     
                    Case "C"
                        rcbbCol1.DataSource = CBayColNbrList
                        rcbbCol1.DataBind()
                        rcbbRow1.Enabled = True
     
                    Case Else
                        rcbbCol1.DataSource = DEFGBayColNbrList
                        rcbbCol1.DataBind()
                        rcbbRow1.Enabled = False
     
                End Select
                strColumn = rcbbCol1.SelectedValue.ToString()
                If rcbbRow1.Enabled Then
                    strRow = rcbbRow1.SelectedValue.ToString()
                    strScanLoc = strBay & strColumn & "R" & strRow
                Else
                    strScanLoc = strBay & strColumn
                End If
     
                ' Rebind grid with the records for the new Scan Location.
                sql = "SELECT SERIAL_NO, LOCATION, STATUS, SCAN_LOC, WEIGHT_KGS FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY WHERE LOCATION = '" & strScanLoc & "' OR SCAN_LOC = '" & strScanLoc & "' ORDER BY SERIAL_NO"
                Session("INVNTRYCYCLERECONCLSQLSTRING") = sql
                Session("INVNTRYCYCLERECONCLBAY") = rcbbBay.SelectedValue.Trim
                Session("INVNTRYCYCLERECONCLCOLNBR") = rcbbCol1.SelectedValue.Trim
                Session("INVNTRYCYCLERECONCLROWNBR") = rcbbRow1.SelectedValue.Trim
     
                rgInvntCycleReconcl.Rebind()
     
                ' Set focus to Serial Number textbox
                rtxtSerialNbr.Focus()
                rtxtSerialNbr.Attributes.Add("onfocus", "this.select();")
     
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rcbbBay_SelectedIndexChanged - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
        End Sub
     
        Protected Sub rcbbCol1_SelectedIndexChanged(sender As Object, e As RadComboBoxSelectedIndexChangedEventArgs) Handles rcbbCol1.SelectedIndexChanged
            Try
                Dim strBay As String = ""
                Dim strColumn As String = "", strRow As String = ""
                Dim strScanLoc As String = ""
     
                ' Bay
                strBay = Left(rcbbBay.SelectedValue.Trim, 1)
     
                ' Column
                strColumn = rcbbCol1.SelectedValue.ToString()
     
                ' Row
                If rcbbRow1.Enabled Then
                    strRow = rcbbRow1.SelectedValue.ToString()
                    strScanLoc = strBay & strColumn & "R" & strRow
                Else
                    strScanLoc = strBay & strColumn
                End If
     
                ' Rebind grid with the records for the new Scan Location.
                sql = "SELECT SERIAL_NO, LOCATION, STATUS, SCAN_LOC, WEIGHT_KGS FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY WHERE LOCATION = '" & strScanLoc & "' OR SCAN_LOC = '" & strScanLoc & "' ORDER BY SERIAL_NO"
                Session("INVNTRYCYCLERECONCLSQLSTRING") = sql
                Session("INVNTRYCYCLERECONCLBAY") = rcbbBay.SelectedValue.Trim
                Session("INVNTRYCYCLERECONCLCOLNBR") = rcbbCol1.SelectedValue.Trim
                Session("INVNTRYCYCLERECONCLROWNBR") = rcbbRow1.SelectedValue.Trim
     
                rgInvntCycleReconcl.Rebind()
     
                ' Set focus to Serial Number textbox
                rtxtSerialNbr.Focus()
                rtxtSerialNbr.Attributes.Add("onfocus", "this.select();")
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rcbbCol1_SelectedIndexChanged - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
        End Sub
     
        Protected Sub rcbbRow1_SelectedIndexChanged(sender As Object, e As RadComboBoxSelectedIndexChangedEventArgs) Handles rcbbRow1.SelectedIndexChanged
            Try
                Dim strBay As String = ""
                Dim strColumn As String = "", strRow As String = ""
                Dim strScanLoc As String = ""
     
                ' Bay
                strBay = Left(rcbbBay.SelectedValue.Trim, 1)
     
                ' Column
                strColumn = rcbbCol1.SelectedValue.ToString()
     
                ' Row
                If rcbbRow1.Enabled Then
                    strRow = rcbbRow1.SelectedValue.ToString()
                    strScanLoc = strBay & strColumn & "R" & strRow
                Else
                    strScanLoc = strBay & strColumn
                End If
     
                ' Rebind grid with the records for the new Scan Location.
                sql = "SELECT SERIAL_NO, LOCATION, STATUS, SCAN_LOC, WEIGHT_KGS FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY WHERE LOCATION = '" & strScanLoc & "' OR SCAN_LOC = '" & strScanLoc & "' ORDER BY SERIAL_NO"
                Session("INVNTRYCYCLERECONCLSQLSTRING") = sql
                Session("INVNTRYCYCLERECONCLBAY") = rcbbBay.SelectedValue.Trim
                Session("INVNTRYCYCLERECONCLCOLNBR") = rcbbCol1.SelectedValue.Trim
                Session("INVNTRYCYCLERECONCLROWNBR") = rcbbRow1.SelectedValue.Trim
     
                rgInvntCycleReconcl.Rebind()
     
                ' Set focus to Serial Number textbox
                rtxtSerialNbr.Focus()
                rtxtSerialNbr.Attributes.Add("onfocus", "this.select();")
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rcbbRow1_SelectedIndexChanged - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
        End Sub
     
        Protected Sub rbtnHome_Click(sender As Object, e As EventArgs) Handles rbtnHome.Click
            Try
                Response.Redirect("CustomerPortal")
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rbtnHome_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
     
        End Sub
     
        Protected Sub rbtnLogOut_Click(sender As Object, e As EventArgs) Handles rbtnLogOut.Click
            Try
                LoginValidation.LogoutUser()
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rbtnLogOut_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
     
        End Sub
     
        Protected Sub rbtnScan_Click(sender As Object, e As EventArgs) Handles rbtnScan.Click
            Try
                Dim strBay As String = ""
                Dim strColumn As String = "", strRow As String = ""
                Dim strScanLoc As String = "", strLocationFound As String = ""
                Dim strSerialNbr As String = rtxtSerialNbr.Text.Trim.ToUpper
                Dim dsSerialNbr As DataSet
                Dim bValidSerialNbr As Boolean = False, bSerialNbrChecked As Boolean = False
                Dim strStatus As String = ""
     
                ' Reset label for messages.
                rlblMessage.Font.Bold = False
                rlblMessage.ForeColor = Drawing.Color.White
                rlblMessage.BackColor = Drawing.ColorTranslator.FromHtml("#3A4459")
                rlblMessage.Text = ""
     
                ' Check if valid Serial Number
                ' Note 1: Valid Serial Numbers start with A, B, K, or M.
                ' Note 2: If Serial Number scanned (starts with S and has 9 digits starting with 3) or (does not start with S and has 9 digits starting with 3) then need to query VIEW_PLEX_ACTIVE_INVENTORY where
                '         RSDCID equals the 9 digits to find the SERIAL_NO. If it is found then use the Serial Number to check the Scan location and such.
                If Not String.IsNullOrWhiteSpace(strSerialNbr) Then
                    If Regex.IsMatch(strSerialNbr, "^[A-Z0-9]*$") Then ' Is Serial Number only Letters and/or Numbers
                        ' Serial Number has S prefix?
                        If Mid(strSerialNbr, 1, 1) = "S" Then
                            strSerialNbr = Mid(strSerialNbr, 2) ' Strip off the S prefix.
                            If Len(strSerialNbr) = 9 Then
                                If IsNumeric(strSerialNbr) Then
                                    If Mid(strSerialNbr, 1, 1) = "3" Then
                                        sql = "SELECT SERIAL_NO FROM VIEW_PLEX_ACTIVE_INVENTORY WHERE RSDCID = '" & strSerialNbr & "'"
                                        dsSerialNbr = DataSetConfiguration.OracleDataSet(sql, "S01")
                                        If dsSerialNbr.Tables(0).Rows.Count > 0 Then
                                            strSerialNbr = IIf(Not IsDBNull(dsSerialNbr.Tables(0).Rows(0)(0)), dsSerialNbr.Tables(0).Rows(0)(0).ToString, "")
                                            If Not String.IsNullOrWhiteSpace(strSerialNbr) Then
                                                bValidSerialNbr = True
                                                bSerialNbrChecked = True
                                            Else
                                                strStatus = "UNKNOWN"
                                                bSerialNbrChecked = True
                                            End If
                                        Else
                                            strStatus = "UNKNOWN"
                                            bSerialNbrChecked = True
                                        End If
                                    Else
                                        bSerialNbrChecked = True
                                    End If
                                Else
                                    bSerialNbrChecked = True
                                End If
                            Else
                                bSerialNbrChecked = True
                            End If
                        End If
     
                        ' Serial Number start with 3?
                        If Not bSerialNbrChecked Then  ' Check Serial Number if not already checked.
                            If Mid(strSerialNbr, 1, 1) = "3" Then
                                If Len(strSerialNbr) = 9 Then
                                    If IsNumeric(strSerialNbr) Then
                                        If Mid(strSerialNbr, 1, 1) = "3" Then
                                            sql = "SELECT SERIAL_NO FROM VIEW_PLEX_ACTIVE_INVENTORY WHERE RSDCID = '" & strSerialNbr & "'"
                                            dsSerialNbr = DataSetConfiguration.OracleDataSet(sql, "S01")
                                            If dsSerialNbr.Tables(0).Rows.Count > 0 Then
                                                strSerialNbr = IIf(Not IsDBNull(dsSerialNbr.Tables(0).Rows(0)(0)), dsSerialNbr.Tables(0).Rows(0)(0).ToString, "")
                                                If Not String.IsNullOrWhiteSpace(strSerialNbr) Then
                                                    bValidSerialNbr = True
                                                    bSerialNbrChecked = True
                                                Else
                                                    strStatus = "UNKNOWN"
                                                    bSerialNbrChecked = True
                                                End If
                                            Else
                                                strStatus = "UNKNOWN"
                                                bSerialNbrChecked = True
                                            End If
                                        Else
                                            bSerialNbrChecked = True
                                        End If
                                    Else
                                        bSerialNbrChecked = True
                                    End If
                                Else
                                    bSerialNbrChecked = True
                                End If
                            End If
                        End If
     
                        ' Serial Number start with A, B, K, or M?
                        If Not bSerialNbrChecked Then  ' Check Serial Number if not already checked.
                            If Mid(strSerialNbr, 1, 1) = "A" Or Mid(strSerialNbr, 1, 1) = "B" Or Mid(strSerialNbr, 1, 1) = "K" Or Mid(strSerialNbr, 1, 1) = "M" Then
                                bValidSerialNbr = True
                            End If
                        End If
                    End If
     
                    ' Bay
                    strBay = Left(rcbbBay.SelectedValue.Trim, 1)
     
                    ' Column
                    strColumn = rcbbCol1.SelectedValue.ToString()
     
                    ' Row
                    If rcbbRow1.Enabled Then
                        strRow = rcbbRow1.SelectedValue.ToString()
                        strScanLoc = strBay & strColumn & "R" & strRow
                    Else
                        strScanLoc = strBay & strColumn
                    End If
     
                    If bValidSerialNbr And String.IsNullOrWhiteSpace(strStatus) Then
                        ' Check if Serial Number scanned/entered exists in the Scan Location.
                        sql = "SELECT LOCATION, STATUS FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY WHERE (LOCATION = '" & strScanLoc & "') AND (SERIAL_NO = '" & strSerialNbr & "') ORDER BY SERIAL_NO"
                        dsSerialNbr = DataSetConfiguration.OracleDataSet(sql, "S01")
                        If dsSerialNbr.Tables(0).Rows.Count > 0 Then
                            strStatus = UCase(dsSerialNbr.Tables(0).Rows(0)(1).ToString)
                            If strStatus = "UN-SCANNED" Then
                                ' Update the Status.
                                sql = "UPDATE ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY SET STATUS = 'MATCH', SCAN_LOC = '" & strScanLoc & "' WHERE (LOCATION = '" & strScanLoc & "') AND SERIAL_NO = '" & strSerialNbr & "'"
                                strSQLResult = SQLExecution.SQLCommand(sql, "S01")
                                If Not String.IsNullOrWhiteSpace(strSQLResult) Then
                                    strErrorMsg = "Procedure: rbtnScan_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: Update error - " & strSQLResult
                                    UserFunctions.UserMsgBox(Me, strErrorMsg)
                                End If
                            End If
                        Else
                            ' Check if Serial Number scanned/entered exists in the Temp table (PLEX_ACTIVE_CYCLE_INVENTORY).
                            sql = "SELECT LOCATION, STATUS FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY WHERE SERIAL_NO = '" & strSerialNbr & "' ORDER BY SERIAL_NO"
                            dsSerialNbr = DataSetConfiguration.OracleDataSet(sql, "S01")
                            If dsSerialNbr.Tables(0).Rows.Count > 0 Then
                                strStatus = UCase(dsSerialNbr.Tables(0).Rows(0)(1).ToString)
                                If strStatus = "UN-SCANNED" Then
                                    strLocationFound = IIf(Not IsDBNull(dsSerialNbr.Tables(0).Rows(0)(0)), dsSerialNbr.Tables(0).Rows(0)(0).ToString, "")
                                    If Not String.IsNullOrWhiteSpace(strLocationFound) Then
                                        If strLocationFound <> strScanLoc Then
                                            ' Update the Status.
                                            sql = "UPDATE ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY SET STATUS = 'DIF-LOC', SCAN_LOC = '" & strScanLoc & "' WHERE SERIAL_NO = '" & strSerialNbr & "'"
                                            strSQLResult = SQLExecution.SQLCommand(sql, "S01")
                                            If Not String.IsNullOrWhiteSpace(strSQLResult) Then
                                                strErrorMsg = "Procedure: rbtnScan_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: Update error - " & strSQLResult
                                                UserFunctions.UserMsgBox(Me, strErrorMsg)
                                            End If
                                        End If
                                    End If
                                End If
                            Else
                                ' Check if Serial Number scanned/entered exists in VIEW_PLEX_ACTIVE_INVENTORY.
                                sql = "SELECT LOCATION FROM VIEW_PLEX_ACTIVE_INVENTORY WHERE SERIAL_NO = '" & strSerialNbr & "' ORDER BY SERIAL_NO"
                                dsSerialNbr = DataSetConfiguration.OracleDataSet(sql, "S01")
                                If dsSerialNbr.Tables(0).Rows.Count > 0 Then
                                    strLocationFound = IIf(Not IsDBNull(dsSerialNbr.Tables(0).Rows(0)(0)), dsSerialNbr.Tables(0).Rows(0)(0).ToString, "")
                                    If Not String.IsNullOrWhiteSpace(strLocationFound) Then
                                        ' Insert record into Temp table (PLEX_ACTIVE_CYCLE_INVENTORY).
                                        sql = "INSERT INTO ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY (SERIAL_NO, LOCATION, STATUS, SCAN_LOC) VALUES('" & strSerialNbr & "','" & strLocationFound & "','DIF-LOC','" & strScanLoc & "')"
                                        strSQLResult = SQLExecution.SQLCommand(sql, "S01")
                                        If Not String.IsNullOrWhiteSpace(strSQLResult) Then
                                            strErrorMsg = "Procedure: rbtnScan_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: Insert error - " & strSQLResult
                                            UserFunctions.UserMsgBox(Me, strErrorMsg)
                                        End If
                                    Else
                                        ' Insert record into Temp table (PLEX_ACTIVE_CYCLE_INVENTORY).
                                        sql = "INSERT INTO ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY (SERIAL_NO, LOCATION, STATUS, SCAN_LOC) VALUES('" & strSerialNbr & "','" & strLocationFound & "','UNKNOWN','" & strScanLoc & "')"
                                        strSQLResult = SQLExecution.SQLCommand(sql, "S01")
                                        If Not String.IsNullOrWhiteSpace(strSQLResult) Then
                                            strErrorMsg = "Procedure: rbtnScan_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: Insert error - " & strSQLResult
                                            UserFunctions.UserMsgBox(Me, strErrorMsg)
                                        End If
                                    End If
                                Else
                                    ' Insert record into Temp table (PLEX_ACTIVE_CYCLE_INVENTORY).
                                    sql = "INSERT INTO ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY (SERIAL_NO, STATUS, SCAN_LOC) VALUES('" & strSerialNbr & "','UNKNOWN','" & strScanLoc & "')"
                                    strSQLResult = SQLExecution.SQLCommand(sql, "S01")
                                    If Not String.IsNullOrWhiteSpace(strSQLResult) Then
                                        strErrorMsg = "Procedure: rbtnScan_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: Insert error - " & strSQLResult
                                        UserFunctions.UserMsgBox(Me, strErrorMsg)
                                    End If
                                End If
                            End If
                        End If
     
                        ' Rebind Grid to show status of scan.
                        rgInvntCycleReconcl.Rebind()
     
                        ' Select Row with Serial Number
                        Dim gdiItem As GridDataItem = rgInvntCycleReconcl.MasterTableView.FindItemByKeyValue("SERIAL_NO", strSerialNbr)
                        If Not gdiItem Is Nothing Then
                            gdiItem.Selected = True
                        End If
     
                    Else
                        If Not String.IsNullOrWhiteSpace(strStatus) Then
                            ' Check if Serial Number scanned/entered exists in the Temp table (PLEX_ACTIVE_CYCLE_INVENTORY).
                            sql = "SELECT LOCATION FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY WHERE SERIAL_NO = '" & strSerialNbr & "' ORDER BY SERIAL_NO"
                            dsSerialNbr = DataSetConfiguration.OracleDataSet(sql, "S01")
                            If dsSerialNbr.Tables(0).Rows.Count = 0 Then
                                ' Insert record into Temp table (PLEX_ACTIVE_CYCLE_INVENTORY).
                                sql = "INSERT INTO ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY (SERIAL_NO, STATUS, SCAN_LOC) VALUES('" & strSerialNbr & "','" & strStatus & "','" & strScanLoc & "')"
                                strSQLResult = SQLExecution.SQLCommand(sql, "S01")
                                If Not String.IsNullOrWhiteSpace(strSQLResult) Then
                                    strErrorMsg = "Procedure: rbtnScan_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: Insert error - " & strSQLResult
                                    UserFunctions.UserMsgBox(Me, strErrorMsg)
                                End If
     
                                ' Rebind Grid to show status of scan.
                                rgInvntCycleReconcl.Rebind()
     
                                ' Select Row with Serial Number
                                Dim gdiItem As GridDataItem = rgInvntCycleReconcl.MasterTableView.FindItemByKeyValue("SERIAL_NO", strSerialNbr)
                                If Not gdiItem Is Nothing Then
                                    gdiItem.Selected = True
                                End If
                            Else
                                ' Select Row with Serial Number
                                Dim gdiItem As GridDataItem = rgInvntCycleReconcl.MasterTableView.FindItemByKeyValue("SERIAL_NO", strSerialNbr)
                                If Not gdiItem Is Nothing Then
                                    gdiItem.Selected = True
                                End If
                            End If
                        Else
                            strErrorMsg = "Invalid Serial Number!"
                            rlblMessage.ForeColor = Drawing.Color.Red
                            rlblMessage.BackColor = Drawing.Color.White
                            rlblMessage.Text = strErrorMsg
                        End If
                    End If
                Else
                    strErrorMsg = "No Serial # scanned\entered!"
                    rlblMessage.ForeColor = Drawing.Color.Red
                    rlblMessage.BackColor = Drawing.Color.White
                    rlblMessage.Text = strErrorMsg
                End If
     
                ' Set focus to Serial Number textbox
                rtxtSerialNbr.Focus()
                rtxtSerialNbr.Attributes.Add("onfocus", "this.select();")
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rbtnScan_Click - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
     
        End Sub
        Protected Sub rgInvntCycleReconcl_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles rgInvntCycleReconcl.ItemDataBound
            Try
                'Is it a GridDataItem
                If (TypeOf (e.Item) Is GridDataItem) Then
                    'Get the instance of the right type
                    Dim dataBoundItem As GridDataItem = CType(e.Item, GridDataItem)
     
                    'when "INACTIVE"  then Red   
                    'when "MATCH"  then Green
                    'when "DIF-LOC"  then Yellow
                    'when "UNKNOWN" then Red   
                    Select Case dataBoundItem("Status").Text.ToUpper
                        Case "INACTIVE"
                            dataBoundItem("Status").CssClass = "UnknownClass"
     
                        Case "MATCH"
                            dataBoundItem("Status").CssClass = "MatchClass"
     
                        Case "DIF-LOC"
                            dataBoundItem("Status").CssClass = "DifLocClass"
     
                        Case "UNKNOWN"
                            dataBoundItem("Status").CssClass = "UnknownClass"
     
                        Case Else
                            'dataBoundItem("Status").CssClass = "UnscannedClass"
     
                    End Select
     
                End If
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rgInvntCycleReconcl_ItemDataBound - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
     
        End Sub
     
        Protected Sub rgInvntCycleReconcl_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) Handles rgInvntCycleReconcl.NeedDataSource
            Try
                If (Session("INVNTRYCYCLERECONCLSQLSTRING") Is Nothing) Then
                    sql = "SELECT SERIAL_NO, LOCATION, STATUS, SCAN_LOC, WEIGHT_KGS FROM ADMIN.PLEX_ACTIVE_CYCLE_INVENTORY ORDER BY SERIAL_NO"
                Else
                    sql = CType(Session("INVNTRYCYCLERECONCLSQLSTRING"), String)
                End If
     
                myDSData = DataSetConfiguration.OracleDataSet(sql, "S01")
                rgInvntCycleReconcl.DataSource = myDSData
     
            Catch ex As Exception
                strErrorMsg = "Procedure: rgInvntCycleReconcl_NeedDataSource - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
        End Sub
     
        Protected Sub RadMenu1_ItemClick(sender As Object, e As RadMenuEventArgs) Handles RadMenu1.ItemClick
            Try
                Dim currentItem As RadMenuItem = RadMenu1.FindItemByText("Logout")
     
                If Not currentItem Is Nothing Then
                    If currentItem.Selected Then
                        LoginValidation.LogoutUser()
                    End If
                End If
     
            Catch ex As Exception
                strErrorMsg = "Procedure: RadMenu1_ItemClick - InventoryCycleReconciliation" & vbCrLf & "Error Message: " & ex.Message & vbCrLf & "Source: " & ex.Source
                UserFunctions.UserMsgBox(Me, strErrorMsg)
     
            End Try
     
        End Sub
     
    End Class

  7. Answer
    Konstantin Dikov
    Admin
    Konstantin Dikov avatar
    1796 posts

    Posted 17 Aug Link to this post

    Hello Keith,

    Please try to remove the Height of the RadGrid and control its height through the ScrollHeight property:
    <ClientSettings>
        <Scrolling ScrollHeight="220" />
    </ClientSettings>

    Let me know if this helps.


    Regards,
    Konstantin Dikov
    Telerik by Progress
    Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
  8. Keith
    Keith avatar
    102 posts
    Member since:
    Mar 2015

    Posted 17 Aug in reply to Konstantin Dikov Link to this post

    Thanks Konstantin!  That helped to resolve that issue.

    Sincerely,

    Keith Jackson

Back to Top
UI for ASP.NET Ajax is Ready for VS 2017