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

[Solved] Self-Reference Grid - FilterExpression

1 Answer 128 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Vinhlan
Top achievements
Rank 1
Vinhlan asked on 23 Apr 2008, 06:44 AM
Hi All,

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;

}

}

 

1 Answer, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 23 Apr 2008, 12:50 PM
Hi,

Go through the following help document link.
Operating with the FilterExpression of Telerik RadGrid manually

Shinu.
Tags
Grid
Asked by
Vinhlan
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Share this question
or