This is a migrated thread and some comments may be shown as answers.

Selecting Row after Rebind and Scroll to Selected Row

6 Answers 635 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Keith
Top achievements
Rank 1
Keith asked on 04 Aug 2016, 03:53 PM

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

6 Answers, 1 is accepted

Sort by
0
Accepted
Konstantin Dikov
Telerik team
answered on 09 Aug 2016, 08:08 AM
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.
0
Keith
Top achievements
Rank 1
answered on 09 Aug 2016, 03:02 PM

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

0
Konstantin Dikov
Telerik team
answered on 12 Aug 2016, 06:01 AM
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.
0
Keith
Top achievements
Rank 1
answered on 12 Aug 2016, 12:21 PM

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

0
Accepted
Konstantin Dikov
Telerik team
answered on 17 Aug 2016, 05:56 AM
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.
0
Keith
Top achievements
Rank 1
answered on 17 Aug 2016, 12:37 PM

Thanks Konstantin!  That helped to resolve that issue.

Sincerely,

Keith Jackson

Tags
Grid
Asked by
Keith
Top achievements
Rank 1
Answers by
Konstantin Dikov
Telerik team
Keith
Top achievements
Rank 1
Share this question
or