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
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