Error Filter column of RadCombobox with special character

3 posts, 0 answers
  1. Hung
    Hung avatar
    2 posts
    Member since:
    Jul 2014

    Posted 02 Oct 2014 Link to this post

    Hi all,
    Please help me.
    When i use RadCombobox control in filter the column, I get an error:
    Selection out of range
    Parameter name: value
    Exception Details: System.ArgumentOutOfRangeException: Selection out of range
    Parameter name: value

    1. .aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:ScriptManager ID="sm" runat="server"></asp:ScriptManager>
                <telerik:RadGrid ID="RadGrid1" ShowGroupPanel="false" runat="server" AutoGenerateColumns="False" AllowFilteringByColumn="true" PageSize="3" EnableLinqExpressions="true">
                    <ClientSettings>
                        <Resizing AllowColumnResize="true" EnableRealTimeResize="true" />
                        <Scrolling AllowScroll="true" />
                    </ClientSettings>
                    <MasterTableView>
                        <ColumnGroups>
                            <telerik:GridColumnGroup Name="Left" HeaderText="LEFT" HeaderStyle-HorizontalAlign="Center">
                                <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
                            </telerik:GridColumnGroup>
                            <telerik:GridColumnGroup Name="Center" HeaderText="CENTER" ParentGroupName="Left"></telerik:GridColumnGroup>
                            <telerik:GridColumnGroup Name="Right" HeaderText="RIGHT" ParentGroupName="Left"></telerik:GridColumnGroup>
                        </ColumnGroups>
                        <Columns>
                            <telerik:GridBoundColumn DataField="A" HeaderText="AAA" HeaderStyle-HorizontalAlign="Center" ColumnGroupName="Left">
                                <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
                                <FilterTemplate>
                                    <telerik:RadComboBox ID="cbFilterUserSPIMI" AppendDataBoundItems="true" runat="server"
                                        Height="150px" Width="110px" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("A").CurrentFilterValue %>'
                                        OnClientSelectedIndexChanged="IndexChangedUserSPIMI" OnInit="cbFilterUserSPIMI_Init">
                                        <Items>
                                            <telerik:RadComboBoxItem Text="All" />
                                        </Items>
                                    </telerik:RadComboBox>
                                    <telerik:RadScriptBlock ID="RDFilterScriptBlockUserSPIMI" runat="server">
                                        <script type="text/javascript">
                                            function IndexChangedUserSPIMI(sender, args) {
                                                var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID%>");
                                                tableView.filter("A", args.get_item().get_value(), "EqualTo");
                                            }
                                        </script>
                                    </telerik:RadScriptBlock>
                                </FilterTemplate>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="B" HeaderText="BBB" HeaderStyle-HorizontalAlign="Center" ColumnGroupName="Left">
                                <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
                                <FilterTemplate>
                                    <telerik:RadComboBox ID="cbFilterB" AppendDataBoundItems="true" runat="server" Height="150px" Width="110px"
                                        SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("B").CurrentFilterValue %>' OnClientSelectedIndexChanged="IndexChangeBBB"
                                        OnInit="cbFilterB_Init">
                                        <Items>
                                            <telerik:RadComboBoxItem Text="All" />
                                        </Items>
                                    </telerik:RadComboBox>
                                    <telerik:RadScriptBlock ID="RDBlockforB" runat="server">
                                        <script type="text/javascript">
                                            function IndexChangeBBB(sender, args) {
                                                var tableView = $find("<%#((GridItem)Container).OwnerTableView.ClientID%>");
                                                tableView.filter("B", args.get_item().get_value(), "EqualTo");
                                            }
                                        </script>
                                    </telerik:RadScriptBlock>
                                </FilterTemplate>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="C" HeaderText="CCC" HeaderStyle-HorizontalAlign="Center" ColumnGroupName="Center">
                                <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="D" HeaderText="DDD" HeaderStyle-HorizontalAlign="Center" ColumnGroupName="Right">
                                <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="E" HeaderText="EEE" HeaderStyle-HorizontalAlign="Center" ColumnGroupName="Right">
                                <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
                            </telerik:GridBoundColumn>
                        </Columns>
                    </MasterTableView>
                </telerik:RadGrid>
            </div>
        </form>
    </body>
    </html>

    2. codebehind

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Telerik.Web.UI;

    namespace WebApplication1
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                RadGrid1.DataSource = GetDB();
                RadGrid1.DataBind();
            }

            protected DataTable GetDB()
            {
                DataTable dtb = new DataTable();

                dtb.Columns.Add("A", typeof(string));
                dtb.Columns.Add("B", typeof(string));
                dtb.Columns.Add("C", typeof(string));
                dtb.Columns.Add("D", typeof(string));
                dtb.Columns.Add("E", typeof(string));

                DataRow dr;

                for (int i = 0; i < 3; i++)
                {
                    dr = dtb.NewRow();

                    if (i < 1)
                    {
                        dr[0] = @"Demo-A\abc";
                        dr[1] = "BBB Demo";
                        dr[2] = "Demo CCC";
                        dr[3] = "DDD Demo";
                        dr[4] = "Demo EEE";
                    }
                    else if (i == 1)
                    {
                        dr[0] = "A/u1010";
                        dr[1] = "BBB*/u2020";
                        dr[2] = "Admid/CCC";
                        dr[3] = "DDD/&^u8080";
                        dr[4] = @"U5050\EEE";
                    }
                    else if (i == 2)
                    {
                        dr[0] = "*&^%\u1011010";
                        dr[1] = "BBB/&^%$#@";
                        dr[2] = "$$$$$/CCC";
                        dr[3] = @"DDD\U56565656%";
                        dr[4] = "EEE/***(((";
                    }

                    dtb.Rows.Add(dr);
                }

                    return dtb;
            }

            string temp = string.Empty;

            protected void cbFilterUserSPIMI_Init(object sender, EventArgs e)
            {

                RadComboBox combo = sender as RadComboBox;
                combo.DataSource = this.GetDB().AsEnumerable().Select(row => row.Field<string>("A")).Where(s => !string.IsNullOrEmpty(s)).Distinct().OrderBy(s => s);
            }

            protected void cbFilterB_Init(object sender, EventArgs e)
            {
                RadComboBox combo = sender as RadComboBox;
                combo.DataSource = this.GetDB().AsEnumerable().Select(row => row.Field<string>("B")).Where(s => !string.IsNullOrEmpty(s)).Distinct().OrderBy(s => s);
            }

        }
    }

    Thank you very much
  2. Konstantin Dikov
    Admin
    Konstantin Dikov avatar
    1796 posts

    Posted 06 Oct 2014 Link to this post

    Hello Hung,

    Thank you for providing a sample replicating the error. 

    Nevertheless, I am really glad to inform you that this bug is already fixed in our latest version 2014 Q3 Beta (version 2014.3 1002). I have tested the scenario with our latest version and I may confirm that the filtering is working correctly.

    Could you please upgrade to our latest version and see if everything works correctly on your end too.


    Regards,
    Konstantin Dikov
    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
  4. Hung
    Hung avatar
    2 posts
    Member since:
    Jul 2014

    Posted 06 Oct 2014 in reply to Konstantin Dikov Link to this post

    Hi Konstantin Dikov,
    Thanks for support. I'll try it with the lastest version.
Back to Top