I'm currently using Telerik.Web.UI.dll 2008.1.415.35. I've problem with sef reference grid when the line below is called:
RadGrid1.MasterTableView.FilterExpression =
"ParentID = 0";
I never have this problem when using the previous version of the grid.
Please, help. Below is an example of the seff reference grid
*ASPX
<%
@ Page Language="C#" AutoEventWireup="true" CodeFile="NewSelfRef2.aspx.cs" Inherits="NewSelfRef2" %>
<%
@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head id="Head1" runat="server">
<title>Untitled Page</title>
</
head>
<
body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<telerik:RadGrid ID="RadGrid1" runat="server" Skin="" Width= "97%" OnNeedDataSource= "RadGrid1_NeedDataSource" GridLines="None" ShowHeader="False">
<MasterTableView HierarchyDefaultExpanded="True" HierarchyLoadMode="Client" DataKeyNames= "ParentID, ID" Width="100%" AutoGenerateColumns="False">
<SelfHierarchySettings ParentKeyName="ParentID" KeyName="ID"/>
<Columns>
<telerik:GridBoundColumn UniqueName="Name" DataField="Name" ReadOnly="true" HeaderText="Entity Name" HeaderStyle-Width="200px"></telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="ParentID" DataField="ParentID" ItemStyle-Width="100px" HeaderStyle-Width="100px" ReadOnly="true" HeaderText="User Count"></telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="ID" DataField="ID" ReadOnly="true" HeaderText="Type" HeaderStyle-Width="194px"></telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
</div>
</form>
</
body>
</
html>
*ASPX.CS
using
System;
using
System.Collections;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Xml.Linq;
using
Telerik.Web.UI;
public
partial class NewSelfRef2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RadGrid1.MasterTableView.FilterExpression =
"ParentID = 0";
}
}
private void AddRow(DataTable table, Int32 ID, Int32 ParentID, string Name)
{
DataRow row = table.NewRow();
row[
"ID"] = ID;
row[
"ParentID"] = ParentID;
row[
"Name"] = Name;
table.Rows.Add(row);
}
protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add(
"Name", System.Type.GetType("System.String"));
table.Columns.Add(
"ID", System.Type.GetType("System.Int32"));
table.Columns.Add(
"ParentID", System.Type.GetType("System.Int32"));
DataColumn[] PrimaryKeys = new DataColumn[1];
PrimaryKeys[0] = table.Columns[
"ID"];
table.PrimaryKey = PrimaryKeys;
AddRow(table, 1, 0,
"President");
AddRow(table, 2, 1,
"Vice President");
AddRow(table, 3, 2,
"CEO");
AddRow(table, 4, 2,
"CTO");
AddRow(table, 5, 4,
"Group PM");
AddRow(table, 6, 5,
"PM 1");
AddRow(table, 7, 5,
"PM 2");
AddRow(table, 8, 6,
"Team Leader 1");
AddRow(table, 9, 8,
"Software Engineer 1");
AddRow(table, 10, 8,
"Software Engineer 2");
AddRow(table, 11, 6,
"Test Lead 1");
AddRow(table, 12, 11,
"Tester 1");
AddRow(table, 13, 11,
"Tester 2");
AddRow(table, 14, 7,
"Team leader 2");
AddRow(table, 15, 14,
"Software Engineer 3");
AddRow(table, 16, 14,
"Software Engineer 4");
AddRow(table, 17, 7,
"Test Lead 2");
AddRow(table, 18, 17,
"Tester 3");
AddRow(table, 19, 17,
"Tester 4");
AddRow(table, 20, 17,
"Tester 5");
table.AcceptChanges();
RadGrid1.DataSource = table;
}
}