private
void
radTreeView_Editing(
object
sender, TreeNodeEditingEventArgs e)
{
if
(e.Node.Text ==
"abc"
)
{
e.Node.CancelEdit();
}
}
I create tree with nodes like in example. When I use scroll on mouse for scrolling up and down Node18 state changed from checked to unchecked and back on GUI. When Nodes18 state is unchecked and I select any node, Node18 state changed to checked on GUI. This is easy to reproduce. I use 2013 Q1 SP1. This code was generated by VS automatically.
How do you suggest resolving this?
Code example:
private
void
InitializeComponent()
{
Telerik.WinControls.UI.RadTreeNode radTreeNode1 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode2 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode3 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode4 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode5 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode6 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode7 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode8 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode9 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode10 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode11 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode12 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode13 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode14 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode15 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode16 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode17 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode18 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode19 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode20 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode21 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode22 =
new
Telerik.WinControls.UI.RadTreeNode();
Telerik.WinControls.UI.RadTreeNode radTreeNode23 =
new
Telerik.WinControls.UI.RadTreeNode();
this
.radTreeView1 =
new
Telerik.WinControls.UI.RadTreeView();
((System.ComponentModel.ISupportInitialize)(
this
.radTreeView1)).BeginInit();
this
.SuspendLayout();
//
// radTreeView1
//
this
.radTreeView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this
.radTreeView1.BackColor = System.Drawing.SystemColors.Control;
this
.radTreeView1.Cursor = System.Windows.Forms.Cursors.Default;
this
.radTreeView1.Font =
new
System.Drawing.Font(
"Segoe UI"
, 8.25F);
this
.radTreeView1.ForeColor = System.Drawing.Color.Black;
this
.radTreeView1.Location =
new
System.Drawing.Point(12, 12);
this
.radTreeView1.Name =
"radTreeView1"
;
radTreeNode1.Expanded =
true
;
radTreeNode1.Name =
"Node1"
;
radTreeNode2.Name =
"Node2"
;
radTreeNode2.Text =
"Node2"
;
radTreeNode3.Name =
"Node3"
;
radTreeNode3.Text =
"Node3"
;
radTreeNode4.Name =
"Node4"
;
radTreeNode4.Text =
"Node4"
;
radTreeNode5.Name =
"Node5"
;
radTreeNode5.Text =
"Node5"
;
radTreeNode6.Name =
"Node6"
;
radTreeNode6.Text =
"Node6"
;
radTreeNode7.Name =
"Node7"
;
radTreeNode7.Text =
"Node7"
;
radTreeNode8.Name =
"Node8"
;
radTreeNode8.Text =
"Node8"
;
radTreeNode9.Name =
"Node9"
;
radTreeNode9.Text =
"Node9"
;
radTreeNode10.Name =
"Node10"
;
radTreeNode10.Text =
"Node10"
;
radTreeNode11.Name =
"Node11"
;
radTreeNode11.Text =
"Node11"
;
radTreeNode12.Name =
"Node12"
;
radTreeNode12.Text =
"Node12"
;
radTreeNode13.Name =
"Node13"
;
radTreeNode13.Text =
"Node13"
;
radTreeNode14.Name =
"Node14"
;
radTreeNode14.Text =
"Node14"
;
radTreeNode15.Name =
"Node15"
;
radTreeNode15.Text =
"Node15"
;
radTreeNode1.Nodes.AddRange(
new
Telerik.WinControls.UI.RadTreeNode[] {
radTreeNode2,
radTreeNode3,
radTreeNode4,
radTreeNode5,
radTreeNode6,
radTreeNode7,
radTreeNode8,
radTreeNode9,
radTreeNode10,
radTreeNode11,
radTreeNode12,
radTreeNode13,
radTreeNode14,
radTreeNode15});
radTreeNode1.Text =
"Node1"
;
radTreeNode16.Expanded =
true
;
radTreeNode16.Name =
"Node16"
;
radTreeNode17.CheckType = Telerik.WinControls.UI.CheckType.RadioButton;
radTreeNode17.Name =
"Node17"
;
radTreeNode17.Text =
"Node17"
;
radTreeNode18.CheckState = Telerik.WinControls.Enumerations.ToggleState.Indeterminate;
radTreeNode18.CheckType = Telerik.WinControls.UI.CheckType.RadioButton;
radTreeNode18.Expanded =
true
;
radTreeNode18.Name =
"Node18"
;
radTreeNode19.CheckType = Telerik.WinControls.UI.CheckType.CheckBox;
radTreeNode19.Name =
"Node19"
;
radTreeNode19.Text =
"Node19"
;
radTreeNode20.CheckType = Telerik.WinControls.UI.CheckType.CheckBox;
radTreeNode20.Name =
"Node20"
;
radTreeNode20.Text =
"Node20"
;
radTreeNode21.CheckType = Telerik.WinControls.UI.CheckType.CheckBox;
radTreeNode21.Name =
"Node21"
;
radTreeNode21.Text =
"Node21"
;
radTreeNode22.CheckType = Telerik.WinControls.UI.CheckType.CheckBox;
radTreeNode22.Name =
"Node22"
;
radTreeNode22.Text =
"Node22"
;
radTreeNode23.CheckType = Telerik.WinControls.UI.CheckType.CheckBox;
radTreeNode23.Name =
"Node23"
;
radTreeNode23.Text =
"Node23"
;
radTreeNode18.Nodes.AddRange(
new
Telerik.WinControls.UI.RadTreeNode[] {
radTreeNode19,
radTreeNode20,
radTreeNode21,
radTreeNode22,
radTreeNode23});
radTreeNode18.Text =
"Node18"
;
radTreeNode16.Nodes.AddRange(
new
Telerik.WinControls.UI.RadTreeNode[] {
radTreeNode17,
radTreeNode18});
radTreeNode16.Text =
"Node16"
;
this
.radTreeView1.Nodes.AddRange(
new
Telerik.WinControls.UI.RadTreeNode[] {
radTreeNode1,
radTreeNode16});
this
.radTreeView1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this
.radTreeView1.Size =
new
System.Drawing.Size(260, 238);
this
.radTreeView1.SpacingBetweenNodes = -1;
this
.radTreeView1.TabIndex = 0;
this
.radTreeView1.Text =
"radTreeView1"
;
//
// Form1
//
this
.AutoScaleDimensions =
new
System.Drawing.SizeF(6F, 13F);
this
.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this
.ClientSize =
new
System.Drawing.Size(284, 262);
this
.Controls.Add(
this
.radTreeView1);
this
.Name =
"Form1"
;
this
.Text =
"Form1"
;
((System.ComponentModel.ISupportInitialize)(
this
.radTreeView1)).EndInit();
this
.ResumeLayout(
false
);
}
private
Telerik.WinControls.UI.RadTreeView radTreeView1;
UPDATE : This causes for node18 because it set as
radTreeNode18.CheckState = Telerik.WinControls.Enumerations.ToggleState.Indeterminate;
private
RadGridView radGridView1;
private
GridViewSummaryItem summaryItem1ï¼›
private void LoadData()
{
tbladapter.fillbydate(ds.tbla,begindate,enddate);
summaryItem1 =
new
GridViewSummaryItem(
"Id"
,
"Sum of Id: {0}"
, GridAggregateFunction.Sum);
var summaryRow1 =
new
GridViewSummaryRowItem(
new
[] {summaryItem1});
//if I add onece the radgridview can't display in 299 recordset
radGridView1.SummaryRowsBottom.Add(summaryRow1);
//if I add two same method the radgridview can display summary ok
radGridView1.SummaryRowsBottom.Add(summaryRow1);
}
Hello,
I have a gridview which display workitemdata. The columns are "The client", "The service contract", "The Employee", "The Date", "Hours", "Description", "price hour" and "Value (price hour * hours). The client, service contract and employee are ID value not string.
I have made a three level grouping on Client, service contract and Employee.
I have added a summary row for displaying the total of Value by group and an Handler on GroupSummaryEvaluate for displaying an human readable string instead of ID.
But I'm stuck on these problems:
I join two picture (GroupSummaryEvaluate active/not active) and some code.
Imports
System.Data.Objects
Imports
Telerik.WinControls.UI
Imports
Telerik.WinControls.Data
Public
Class
View_ValorisationTravail
Private
_datactx
As
IconEntities
Public
ReadOnly
Property
InnerDataContext
As
IconEntities
Get
Return
_datactx
End
Get
End
Property
Private
_dataquery
As
ObjectQuery(Of Travail)
Public
Property
DataQuery
As
ObjectQuery(Of Travail)
Get
Return
_dataquery
End
Get
Set
(value
As
ObjectQuery(Of Travail))
If
_dataquery
Is
Nothing
AndAlso
value IsNot
Nothing
Then
_dataquery = value
OnDataqueryChanged()
End
If
If
Not
_dataquery.Equals(value)
Then
_dataquery = value
OnDataqueryChanged()
End
If
End
Set
End
Property
Private
Sub
View_ValorisationTravail_Load(sender
As
Object
, e
As
System.EventArgs)
Handles
Me
.Load
If
Not
Me
.DesignMode
Then
_datactx =
New
IconEntities(GetConnection())
'Temporaire en attendant les filtres
Me
.DataQuery = GenerateDataQuery()
End
If
IntitialiseGroupValorisationTravaux(
Me
.RadGridView1)
Dim
summaryItem
As
New
GridViewSummaryItem(
"Valeur"
,
"{0:N2} CHF"
, GridAggregateFunction.Sum)
Dim
summaryItemLabel
As
New
GridViewSummaryItem(
"CHFparheure"
,
"TOTAL"
, GridAggregateFunction.Sum)
Dim
summaryRowItem
As
New
GridViewSummaryRowItem()
summaryRowItem.Add(summaryItem)
summaryRowItem.Add(summaryItemLabel)
Me
.RadGridView1.SummaryRowsBottom.Add(summaryRowItem)
Me
.RadGridView1.MasterTemplate.ShowParentGroupSummaries =
True
End
Sub
Private
Sub
OnDataqueryChanged()
Me
.RadGridView1.DataSource = DataQuery.Execute(MergeOption.OverwriteChanges).ToList
End
Sub
''' <summary>
''' Generating an ObjectQuery for test purpose
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
Private
Function
GenerateDataQuery()
As
ObjectQuery(Of Travail)
Dim
query = From c
In
_datactx.Travail
Select
c
Return
query
End
Function
Private
GroupClientDescriptor
As
GroupDescriptor
Private
GroupPrestationDescriptor
As
GroupDescriptor
Private
GroupCollaborateurDescriptor
As
GroupDescriptor
''' <summary>
''' Build the group
''' </summary>
''' <param name="aGridView"></param>
''' <remarks></remarks>
Private
Sub
IntitialiseGroupValorisationTravaux(aGridView
As
RadGridView)
aGridView.EnableGrouping =
True
aGridView.AutoExpandGroups =
True
aGridView.GroupDescriptors.Clear()
Dim
SortClientDescriptor
As
New
SortDescriptor(
"Client"
, System.ComponentModel.ListSortDirection.Ascending)
GroupClientDescriptor =
New
GroupDescriptor()
GroupClientDescriptor.GroupNames.AddRange(
New
Telerik.WinControls.Data.SortDescriptor() {SortClientDescriptor})
Dim
SortPrestationDescriptor
As
New
SortDescriptor(
"Prestation"
, System.ComponentModel.ListSortDirection.Ascending)
GroupPrestationDescriptor =
New
GroupDescriptor()
GroupPrestationDescriptor.GroupNames.AddRange(
New
Telerik.WinControls.Data.SortDescriptor() {SortPrestationDescriptor})
Dim
SortCollaborateurDescriptor
As
New
SortDescriptor(
"Collaborateur"
, System.ComponentModel.ListSortDirection.Ascending)
GroupCollaborateurDescriptor =
New
GroupDescriptor()
GroupCollaborateurDescriptor.GroupNames.AddRange(
New
Telerik.WinControls.Data.SortDescriptor() {SortCollaborateurDescriptor})
aGridView.GroupDescriptors.AddRange(
New
Telerik.WinControls.Data.GroupDescriptor() {GroupClientDescriptor, GroupPrestationDescriptor, GroupCollaborateurDescriptor})
End
Sub
Private
Sub
Travaux_GroupSummaryEvaluate(
ByVal
sender
As
Object
,
ByVal
e
As
Telerik.WinControls.UI.GroupSummaryEvaluationEventArgs)
Handles
RadGridView1.GroupSummaryEvaluate
If
e.Group.GroupDescriptor.Equals(GroupClientDescriptor)
Then
If
e.Group.ItemCount > 0
AndAlso
e.Group.Item(0).DataBoundItem IsNot
Nothing
Then
e.FormatString =
CType
(e.Group.Item(0).DataBoundItem.Client, Client).Display
End
If
ElseIf
e.Group.GroupDescriptor.Equals(GroupPrestationDescriptor)
Then
If
e.Group.ItemCount > 0
AndAlso
e.Group.Item(0).DataBoundItem IsNot
Nothing
Then
e.FormatString =
CType
(e.Group.Item(0).DataBoundItem.Prestation, Prestation).Display
End
If
ElseIf
e.Group.GroupDescriptor.Equals(GroupCollaborateurDescriptor)
Then
If
e.Group.ItemCount > 0
AndAlso
e.Group.Item(0).DataBoundItem IsNot
Nothing
Then
e.FormatString =
CType
(e.Group.Item(0).DataBoundItem.ContratEngagement.Collaborateur, Collaborateur).DisplayName
End
If
End
If
End
Sub
End
Class