Selection out of range when setting value for RadComboBox in Filter-template

2 posts, 0 answers
  1. Dave
    Dave avatar
    25 posts
    Member since:
    Aug 2012

    Posted 17 Mar 2015 Link to this post

    Dear All,

    I am going mad with what looks to me as a silly thing; I get a "Selection out of range" Parameter name: value error on a page when I try to set the filter to a value that does not exist in the dropdown combo (see printscreen attached).

    I am looking for a solution to avoid/catch this error. I cannot avoid people to filter for non-existing values so I need to catch this error and handle it properly but I don't know how... Can someone help ? The code of the page is as below:

    <%@ Page Title="List of WoWs" Language="VB" MasterPageFile="~/wowsearch.master" AutoEventWireup="false" CodeFile="WoWlist.aspx.vb" Inherits="WoWlist" %>
     
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
        <title>R&D Campus WoWs List</title>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="qckSwitch" Runat="Server">
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/WoWsearch.aspx">switch to search tool</asp:HyperLink>
    </asp:Content>
    <asp:Content ID="Content3" ContentPlaceHolderID="cntBody" Runat="Server">
        <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
            <script type="text/javascript">
                //<![CDATA[
                var RadGrid1;
                var lnkShareFilter;
     
                lnkShareFilter = '';
     
                function GetGridObject(sender, eventArgs) {
                    RadGrid1 = sender;
                }
     
                function ExportToExcel(fileName)
                {
                    RadGrid1.get_masterTableView().exportToExcel(fileName);
                }
     
                //]]>
            </script>
        </telerik:RadCodeBlock>
        <telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="False" CellSpacing="0"
            DataSourceID="sqlWoWList" GridLines="None" PageSize="20" EnableLinqExpressions="false" Width="100%" Height="100%">
            <ClientSettings>
                <Scrolling AllowScroll="True" UseStaticHeaders="True" />
                <ClientEvents OnGridCreated="GetGridObject"></ClientEvents>
            </ClientSettings>
            <ExportSettings ExportOnlyData="true" FileName="List of WoWs" HideStructureColumns="true" IgnorePaging="true" >
                <Excel Format="ExcelML" />
            </ExportSettings>
            <MasterTableView AutoGenerateColumns="False" DataSourceID="sqlWoWList" CommandItemDisplay="Top">
     
                <NoRecordsTemplate>
                    <table width="100%" border="0" cellpadding="20" cellspacing="20">
                        <tr>
                            <td align="center">
                                <h2 style="color:Red">No WoWs or SOPs found.<br />Please change or reset the filter.</h2>
                            </td>
                        </tr>
                    </table>
                </NoRecordsTemplate>
     
                <CommandItemSettings ShowExportToExcelButton="true" ShowAddNewRecordButton="false" ShowRefreshButton="false" />
                <CommandItemTemplate>
                    <div id="cmdContainer" style="width: 99%; padding: 10px; text-align: right;">
                        <a href="http://teamroom.nestle.com/GLOBEISIT/PTCOrbeBPMAcademy/Induction ; Training Materials/Training and Quick Reference Materials/Campus Search QRC.pdf" target="_blank" style="padding: 5px; border: 1px solid gray; margin: 0px 5px;">
                            <img src="../App_Themes/OneRDCampus/images/question-white.png" style="border: none; vertical-align: text-bottom;" /> How To
                        </a>
                        <a href="WoWlist.aspx" style="padding: 5px; border: 1px solid gray; margin: 0px 5px;">
                            <img src="../App_Themes/OneRDCampus/images/filter_(delete)_16x16.gif" style="border: none; vertical-align: text-bottom;" /> Reset filters
                        </a>
                        <a id="lnkShareFilter" onserverclick="lnkShareFilter_ServerClick" href="#" runat="server" style="padding: 5px; border: 1px solid gray; margin: 0px 5px;">
                            <img src="../App_Themes/OneRDCampus/images/bpm_email.png" style="border: none; vertical-align: text-bottom;" /> Share filter
                        </a>
                        <a href="#" runat="server" onclick="ExportToExcel('WoWlist');" style="padding: 5px; border: 1px solid gray; margin: 0px 5px;">
                            <img src="../App_Themes/OneRDCampus/images/Export2XL.gif" style="border: none; vertical-align: text-bottom;" /> Export to excel
                        </a>
                    </div>
                </CommandItemTemplate>
     
                <Columns>
                    <telerik:GridTemplateColumn DataField="Title" CurrentFilterFunction="NoFilter" HeaderText="Title" HeaderTooltip="Title of the WoW or document (roll-over to display the purpose)"
                        SortExpression="Title" UniqueName="Title" FilterControlAltText="Filter Title Column" FilterListOptions="AllowAllFilters" AutoPostBackOnFilter="true"
                        ShowFilterIcon="false" FilterControlWidth="100%">
                        <ItemTemplate>
                            <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#Eval("myURL")%>' ToolTip='<%#Eval("Purpose")%>' Target='<%#Eval("URLTarget")%>'><%#Eval("Title")%></asp:HyperLink>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridBoundColumn DataField="DiagramOwner" CurrentFilterFunction="NoFilter" FilterControlAltText="Filter DiagramOwner column" HeaderText="Owner" ReadOnly="True" SortExpression="DiagramOwner" UniqueName="DiagramOwner"
                            AutoPostBackOnFilter="true" ShowFilterIcon="false" FilterControlWidth="100%" HeaderTooltip="Owner of the WoW or document">
                        <HeaderStyle Width="130px" />
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Unit" CurrentFilterFunction="NoFilter" FilterControlAltText="Filter Unit column" HeaderText="Unit"
                        SortExpression="Unit" UniqueName="Unit" HeaderTooltip="Unit that the WoW or document belongs to">
                        <HeaderStyle Width="120px" />
                        <FilterTemplate>
                            <telerik:RadComboBox ID="RadComboBoxUnit" runat="server" MaxHeight="200px" Width="110px" DropDownWidth="130px"
                                DataSourceID="sqlUnits" DataTextField="Unit" DataValueField="Unit" AppendDataBoundItems="true"
                                SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("Unit").CurrentFilterValue%>'
                                OnClientSelectedIndexChanged="UnitIndexChanged">
                                <Items>
                                    <telerik:RadComboBoxItem Text="All" />
                                </Items>
                            </telerik:RadComboBox>
     
                            <telerik:RadScriptBlock ID="RadScriptBlock4" runat="server">
                                <script type="text/javascript">
                                    function UnitIndexChanged(sender, args) {
                                        var tableView = $find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID%>");
                                        tableView.filter("Unit", args.get_item().get_value(), "Contains");
                                        lnkShareFilter &= '&Unit=' & args.get_item().get_value();
                                    }
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Type" CurrentFilterFunction="NoFilter" FilterControlAltText="Filter Type column" HeaderText="Type"
                        SortExpression="Type" UniqueName="Type" FilterControlWidth="50px" HeaderTooltip="Type of WoW or document">
                        <HeaderStyle Width="90px" />
                        <FilterTemplate>
                            <telerik:RadComboBox ID="RadComboBoxType" runat="server" Width="80px" DropDownWidth="130px"
                                DataSourceID="sqlTypes" DataTextField="Type" DataValueField="Type" AppendDataBoundItems="true"
                                SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("Type").CurrentFilterValue%>'
                                OnClientSelectedIndexChanged="TypeIndexChanged">
                                <Items>
                                    <telerik:RadComboBoxItem Text="All" />
                                </Items>
                            </telerik:RadComboBox>
     
                            <telerik:RadScriptBlock ID="RadScriptBlock3" runat="server">
                                <script type="text/javascript">
                                    function TypeIndexChanged(sender, args) {
                                        var tableView = $find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID%>");
                                        tableView.filter("Type", args.get_item().get_value(), "EqualTo");
                                    }
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Building" CurrentFilterFunction="NoFilter" FilterControlAltText="Filter by Group" HeaderText="Building/Group"
                        SortExpression="Building" UniqueName="Building" HeaderTooltip="Campus Building or other local grouping" >
                        <HeaderStyle Width="120px"  />
                        <FilterTemplate>
                            <telerik:RadComboBox ID="RadComboBoxBuilding" runat="server" MaxHeight="200px" Width="110px" DropDownWidth="160px"
                                DataSourceID="sqlBuildings" DataTextField="Building" DataValueField="Building" AppendDataBoundItems="true"
                                SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("Building").CurrentFilterValue%>'
                                OnClientSelectedIndexChanged="BuildingIndexChanged">
                                <Items>
                                    <telerik:RadComboBoxItem Text="All" />
                                </Items>
                            </telerik:RadComboBox>
     
                            <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
                                <script type="text/javascript">
                                    function BuildingIndexChanged(sender, args) {
                                        var tableView = $find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID%>");
                                        tableView.filter("Building", args.get_item().get_value(), "EqualTo");
                                    }
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Room" CurrentFilterFunction="NoFilter" FilterControlAltText="Filter Sub-Grouping column" HeaderText="Room/Sub-Group"
                        SortExpression="Room" UniqueName="Room" HeaderTooltip="Campus Room or other local sub-grouping">
                        <HeaderStyle Width="140px" />
                        <FilterTemplate>
                            <telerik:RadComboBox ID="RadComboBoxRoom" runat="server" MaxHeight="200px" Width="130px" DropDownWidth="260px"
                                DataSourceID="sqlRooms" DataTextField="Room" DataValueField="Room" AppendDataBoundItems="true"
                                SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("Room").CurrentFilterValue%>'
                                OnClientSelectedIndexChanged="RoomIndexChanged">
                                <Items>
                                    <telerik:RadComboBoxItem Text="All" />
                                </Items>
                            </telerik:RadComboBox>
     
                            <telerik:RadScriptBlock ID="RadScriptBlock2" runat="server">
                                <script type="text/javascript">
                                    function RoomIndexChanged(sender, args) {
                                        var tableView = $find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID%>");
                                        tableView.filter("Room", args.get_item().get_value(), "EqualTo");
                                    }
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="IsReleased" FilterControlAltText="Filter IsReleased column" HeaderText="Released" SortExpression="IsReleased"
                        UniqueName="IsReleased" HeaderTooltip="Is the WoW or document released and publically available?">
                        <HeaderStyle Width="55px" />
                        <FilterTemplate>
                            <telerik:RadComboBox ID="RadComboBoxIsReleased" runat="server" Width="42px" DropDownAutoWidth="Enabled"
                                SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("IsReleased").CurrentFilterValue%>'
                                OnClientSelectedIndexChanged="IsReleasedIndexChanged">
                                <Items>
                                    <telerik:RadComboBoxItem Text="All" />
                                    <telerik:RadComboBoxItem Text="Yes" Value="Yes" />
                                    <telerik:RadComboBoxItem Text="No" Value="No" />
                                </Items>
                            </telerik:RadComboBox>
     
                            <telerik:RadScriptBlock ID="RadScriptBlock5" runat="server">
                                <script type="text/javascript">
                                    function IsReleasedIndexChanged(sender, args) {
                                        var tableView = $find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID%>");
                                        tableView.filter("IsReleased", args.get_item().get_value(), "EqualTo");
                                    }
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="NQMSRelated" CurrentFilterFunction="NoFilter" FilterControlAltText="Filter NIMS column" HeaderText="Compliance"
                        SortExpression="NQMSRelated"" UniqueName="NQMSRelated" HeaderTooltip="Is the WoW or document subject to Compliance?">
                        <HeaderStyle Width="50px" />
                        <FilterTemplate>
                            <telerik:RadComboBox ID="RadComboBoxNQMSRelated" runat="server" Width="42px" DropDownAutoWidth="Enabled"
                                SelectedValue='<%# TryCast(Container, GridItem).OwnerTableView.GetColumn("NQMSRelated").CurrentFilterValue%>'
                                OnClientSelectedIndexChanged="NQMSRelatedIndexChanged">
                                <Items>
                                    <telerik:RadComboBoxItem Text="All" />
                                    <telerik:RadComboBoxItem Text="Yes" Value="Yes" />
                                    <telerik:RadComboBoxItem Text="No" Value="No" />
                                </Items>
                            </telerik:RadComboBox>
     
                            <telerik:RadScriptBlock ID="RadScriptBlock6" runat="server">
                                <script type="text/javascript">
                                    function NQMSRelatedIndexChanged(sender, args) {
                                        var tableView = $find("<%# TryCast(Container, GridItem).OwnerTableView.ClientID%>");
                                        tableView.filter("NQMSRelated", args.get_item().get_value(), "EqualTo");
                                    }
                                </script>
                            </telerik:RadScriptBlock>
                        </FilterTemplate>
                    </telerik:GridBoundColumn>
                </Columns>
            </MasterTableView>
            <GroupingSettings CaseSensitive="false" />
        </telerik:RadGrid>
        <asp:SqlDataSource ID="sqlUnits" runat="server" ConnectionString="<%$ ConnectionStrings:Hydra_DevConnectionString %>"
            SelectCommand="SELECT DISTINCT [Unit] FROM [WoW_VWR_Trackers] WHERE [Unit] IS NOT NULL ORDER BY [Unit]">
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="sqlTypes" runat="server" ConnectionString="<%$ ConnectionStrings:Hydra_DevConnectionString %>"
            SelectCommand="SELECT DISTINCT [Type] FROM [WoW_VWR_Trackers] ORDER BY [Type]"></asp:SqlDataSource>
        <asp:SqlDataSource ID="sqlBuildings" runat="server" ConnectionString="<%$ ConnectionStrings:Hydra_DevConnectionString %>"
            SelectCommand="SELECT DISTINCT [Building] FROM [WoW_VWR_Trackers] WHERE [Building] IS NOT NULL ORDER BY [Building]">
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="sqlRooms" runat="server" ConnectionString="<%$ ConnectionStrings:Hydra_DevConnectionString %>"
            SelectCommand="SELECT DISTINCT [Room] FROM [WoW_VWR_Trackers] WHERE [Room] IS NOT NULL ORDER BY [Room]">
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="sqlWoWList" runat="server" ConnectionString="<%$ ConnectionStrings:Hydra_DevConnectionString %>"
            SelectCommand="SELECT DiagramURL AS myURL, * FROM [Hydra_Dev].[dbo].[WoW_VWR_Trackers]">
        </asp:SqlDataSource>
    </asp:Content>

    And the code-behind:
    Imports Telerik.Web.UI
    Imports System.Diagnostics
    Imports System.Collections.Specialized.NameObjectCollectionBase
    Imports System.Net
    Imports System.IO
     
    Imports System.Net.Mail
     
     
    Partial Class WoWlist
        Inherits System.Web.UI.Page
     
        Const lvlVerboseNone As Integer = 0
        Const lvlVerboseSilent As Integer = 1
        Const lvlVerboseMail As Integer = 2
        Const lvlVerboseScreen As Integer = 4
     
        Const lvlVerbose As Integer = lvlVerboseSilent
     
        Dim ShareFilter As Object
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim IsDataSyncd As Boolean = CheckDataSync()
            If lvlVerbose = lvlVerboseMail Then
                SendChkMail()
            End If
     
            If Not IsDataSyncd Then
                'Launch DataSync
            End If
     
            If Not IsPostBack Then
                If Request.QueryString("Title") IsNot Nothing Then
                    Dim myTitle As String = Server.UrlDecode(Request.QueryString("Title").ToString)
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(Title LIKE '" & myTitle & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("Title")
                    radColumn.CurrentFilterValue = myTitle
                    radColumn.CurrentFilterFunction = GridKnownFunction.Contains
                End If
                If Request.QueryString("Owner") IsNot Nothing Then
                    Dim myOwner As String = Server.UrlDecode(Request.QueryString("Owner").ToString)
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(DiagramOwner LIKE '" & myOwner & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("DiagramOwner")
                    radColumn.CurrentFilterValue = myOwner
                    radColumn.CurrentFilterFunction = GridKnownFunction.Contains
                End If
                If Request.QueryString("Building") IsNot Nothing Then
                    Dim myBuilding As String = Server.UrlDecode(Request.QueryString("Building").ToString)
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(Building LIKE '" & myBuilding & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("Building")
                    radColumn.CurrentFilterValue = myBuilding
                    radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                End If
                If Request.QueryString("Unit") IsNot Nothing Then
                    Dim myUnit As String = Server.UrlDecode(Request.QueryString("Unit").ToString)
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(Unit LIKE '" & myUnit & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("Unit")
                    radColumn.CurrentFilterValue = myUnit
                    radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                End If
                If Request.QueryString("Room") IsNot Nothing Then
                    Dim myRoom As String = Server.UrlDecode(Request.QueryString("Room").ToString)
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(Room LIKE '" & myRoom & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("Room")
                    radColumn.CurrentFilterValue = myRoom
                    radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                End If
                If Request.QueryString("Type") IsNot Nothing Then
                    Dim myType As String = Server.UrlDecode(Request.QueryString("Type").ToString)
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(Type LIKE '" & myType & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("Type")
                    radColumn.CurrentFilterValue = myType
                    radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                End If
                If Request.QueryString("Owner") IsNot Nothing Then
                    Dim myOwner As String = Server.UrlDecode(Request.QueryString("Owner").ToString)
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(DiagramOwner LIKE '" & myOwner & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("DiagramOwner")
                    radColumn.CurrentFilterValue = myOwner
                    radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                End If
                If Request.QueryString("IsReleased") IsNot Nothing Then
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(IsReleased LIKE '" & Request.QueryString("IsReleased").ToString & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("IsReleased")
                    radColumn.CurrentFilterValue = Request.QueryString("IsReleased").ToString
                    radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                Else
                    If Request.QueryString("IsReleased") Is Nothing And Request.QueryString("Owner") Is Nothing And Request.QueryString("Type") Is Nothing And Request.QueryString("Room") Is Nothing And Request.QueryString("Unit") Is Nothing Then
                        If RadGrid1.MasterTableView.FilterExpression <> "" Then
                            RadGrid1.MasterTableView.FilterExpression &= " AND "
                        End If
                        RadGrid1.MasterTableView.FilterExpression &= "(IsReleased LIKE 'Yes')"
                        Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("IsReleased")
                        radColumn.CurrentFilterValue = "Yes"
                        radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                    End If
                End If
                If Request.QueryString("NQMSRelated") IsNot Nothing Then
                    If RadGrid1.MasterTableView.FilterExpression <> "" Then
                        RadGrid1.MasterTableView.FilterExpression &= " AND "
                    End If
                    RadGrid1.MasterTableView.FilterExpression &= "(NQMSRelated LIKE '" & Request.QueryString("NQMSRelated").ToString & "')"
                    Dim radColumn As GridColumn = RadGrid1.MasterTableView.GetColumnSafe("NQMSRelated")
                    radColumn.CurrentFilterValue = Request.QueryString("NQMSRelated").ToString
                    radColumn.CurrentFilterFunction = GridKnownFunction.EqualTo
                End If
                'RadGrid1.MasterTableView.Rebind()
            End If
            ' FilterExpression="([IsReleased] LIKE 'Yes')"
        End Sub
     
        Private Function CheckDataSync() As Boolean
            Return True
        End Function
     
        Private Function SendChkMail() As Boolean
            Return False
        End Function
     
        Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        End Sub
     
        Private Sub RadGrid1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadGrid1.Load
        End Sub
     
        Private Sub RadGrid1_PreInit(ByVal sender As Object, ByVal e As System.EventArgs)
            For Each item As GridColumn In RadGrid1.MasterTableView.Columns
                Dim FilterFunction As String = item.CurrentFilterFunction.ToString
                Dim FilterValue As String = item.CurrentFilterValue.ToString
                Dim FilterColumn As String = item.UniqueName.ToString
     
                If FilterFunction <> "NoFilter" Then
                    If item.CurrentFilterValue.ToString() = "" Then
                        item.ItemStyle.BackColor = RadGrid1.AlternatingItemStyle.BackColor
                    Else
                        item.ItemStyle.BackColor = Drawing.Color.LightYellow
                    End If
                End If
     
            Next
        End Sub
     
        Protected Sub RadGrid1_PreRender(ByVal source As Object, ByVal e As System.EventArgs) Handles RadGrid1.PreRender
            If Not RadGrid1.MasterTableView.FilterExpression Is String.Empty Then
                RefreshCombos()
            End If
     
            For Each item As GridColumn In RadGrid1.MasterTableView.Columns
                Dim FilterFunction As String = item.CurrentFilterFunction.ToString
                Dim FilterValue As String = item.CurrentFilterValue.ToString
                Dim FilterColumn As String = item.UniqueName.ToString
     
                If FilterFunction <> "NoFilter" Then
                    If item.CurrentFilterValue.ToString() = "" Then
                        item.ItemStyle.BackColor = RadGrid1.AlternatingItemStyle.BackColor
                    Else
                        item.ItemStyle.BackColor = Drawing.Color.LightYellow
                    End If
                End If
     
            Next
        End Sub
     
        Protected Sub RefreshCombos()
            sqlBuildings.SelectCommand = AddFilterParameters(sqlBuildings.SelectCommand, RadGrid1.MasterTableView.FilterExpression.ToString())
            sqlRooms.SelectCommand = AddFilterParameters(sqlRooms.SelectCommand, RadGrid1.MasterTableView.FilterExpression.ToString())
     
            sqlTypes.SelectCommand = AddFilterParameters(sqlTypes.SelectCommand, RadGrid1.MasterTableView.FilterExpression.ToString())
     
            sqlUnits.SelectCommand = AddFilterParameters(sqlUnits.SelectCommand, RadGrid1.MasterTableView.FilterExpression.ToString())
            RadGrid1.MasterTableView.Rebind()
        End Sub
     
        Private Function AddFilterParameters(ByVal sqlSelect As String, FilterExpression As String) As String
            Dim posORDER As Int16 = 0
            posORDER = InStr(sqlSelect, "ORDER BY", CompareMethod.Text) - 1
            Dim sqlOrder As String = Right(sqlSelect, Len(sqlSelect) - posORDER)
     
            Dim posWHERE As Int16 = 0
            posWHERE = InStr(sqlSelect, "WHERE", CompareMethod.Text) - 2
     
            Dim sqlCommand As String = ""
            If posWHERE < 0 Then
                sqlCommand = Left(sqlSelect, posORDER)
            Else
                sqlCommand = Left(sqlSelect, posWHERE)
            End If
     
            Dim sqlFilter As String = ""
            If posWHERE > 2 Then
                sqlFilter = Mid(sqlSelect, posWHERE + 8, posORDER - posWHERE - 8)
            End If
     
            If sqlFilter.Length > 0 Then
                If Left(FilterExpression, 5) <> " AND " Then
                    sqlFilter &= " AND "
                End If
            End If
            sqlFilter &= FilterExpression
     
            sqlCommand &= " WHERE " & sqlFilter
     
            Return sqlCommand
        End Function
     
        Private Sub RadGrid1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadGrid1.Init
            Dim menu As GridFilterMenu = RadGrid1.FilterMenu
            Dim i As Integer = 0
            While i < menu.Items.Count
                If menu.Items(i).Text = "NoFilter" Or _
                   menu.Items(i).Text = "Contains" Or _
                   menu.Items(i).Text = "EqualTo" Then
                    i = i + 1
                Else
                    menu.Items.RemoveAt(i)
                End If
            End While
        End Sub
     
        Private Sub RadGrid1_ItemCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.ItemCommand
            If e.CommandName = RadGrid.FilterCommandName Then
                Dim objFilterPair As Pair = CType(e.CommandArgument, Pair)
                Dim objCol As GridColumn = CType(e.Item.OwnerTableView.GetColumn(objFilterPair.Second.ToString()), GridColumn)
     
                Debug.Print("[" & objFilterPair.First.ToString & "]:[" & objFilterPair.Second.ToString & "] = [" & objCol.CurrentFilterValue.ToString() & "]")
     
                If objCol.CurrentFilterValue.ToString() = "" Then
                    objCol.ItemStyle.BackColor = RadGrid1.AlternatingItemStyle.BackColor
                Else
                    objCol.ItemStyle.BackColor = Drawing.Color.LightYellow
                End If
     
            End If
        End Sub
     
        Protected Sub lnkShareFilter_ServerClick(sender As Object, e As EventArgs)
            Dim lnkFilter As String = String.Empty
     
            For Each item As GridColumn In RadGrid1.MasterTableView.Columns
                Dim FilterFunction As String = item.CurrentFilterFunction.ToString
                Dim FilterValue As String = item.CurrentFilterValue.ToString
                Dim FilterColumn As String = item.UniqueName.ToString
     
                If FilterFunction <> "NoFilter" Then
                    Debug.Print(FilterColumn & ":" & FilterFunction & "=" & FilterValue)
                    lnkFilter &= "&" & FilterColumn & "=" & Server.UrlEncode(FilterValue)
                End If
     
            Next
     
            lnkFilter = "mailto:&subject=WoW List&body=" & Server.UrlEncode("http://chorra0004/hydra/bpm/WoWList.aspx?" & lnkFilter.Substring(1))
     
            Debug.Print("[" & lnkFilter & "]")
            ClientScript.RegisterStartupScript(Me.GetType(), "mailto", "<script type = 'text/javascript'>parent.location='" & lnkFilter & "'</script>")
        End Sub
     
        Protected Function ContentExists(ByVal strUrl As String) As Boolean
            Try
                Dim hwrRequest As HttpWebRequest = WebRequest.Create(strUrl)
                Dim hwrResponse As HttpWebResponse = hwrRequest.GetResponse()
                Dim stmStream As Stream = hwrResponse.GetResponseStream()
                Dim strReader As String = New StreamReader(stmStream).ReadToEnd()
                Return True
            Catch ex As Exception
                Return False
            End Try
        End Function
     
        Protected Function urlExists(ByVal strUrl As String) As Boolean
            Try
                Dim hwrRequest As HttpWebRequest = WebRequest.Create(strUrl)
                hwrRequest.AllowAutoRedirect = False
                Dim hwrResponse As HttpWebResponse = hwrRequest.GetResponse()
                If hwrResponse.StatusCode = HttpStatusCode.OK Then
                    Return True
                Else
                    Return False
                End If
            Catch ex As Exception
                Return False
            End Try
        End Function
    End Class

    Error occurs in Page_Load sub.



  2. Eyup
    Admin
    Eyup avatar
    3015 posts

    Posted 20 Mar 2015 Link to this post

    Hi Dave,

    Probably, you are aware of the following sample:
    http://demos.telerik.com/aspnet-ajax/grid/examples/functionality/filtering/filter-templates/defaultcs.aspx

    Can you please see what is the crucial difference in your case which may cause the problem?

    I am also sending a modified version of this scenario using the Text property of the combo.

    Regards,
    Eyup
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

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