Hi,
Description:
I'm facing refreshing issue when using rad grid view (below I've attached code snippet you can use to reproduce it).
Generally in the described example I have two collections in parent - child relation binded to grid view and one button that adds new object to child collection.
Problem:
When first node in grid is expanded and have no children and I add a new child, it won't appear in grid view, even that node is marked as expanded (untitled.png). To see it I have to collapse and expand it again (untitled2.png) .
It's very imported for me to make it working correctly.
Code:
001.using System; 002.using System.Collections.Generic; 003.using System.ComponentModel; 004.using System.Data; 005.using System.Drawing; 006.using System.Linq; 007.using System.Text; 008.using System.Windows.Forms; 009.using Telerik.WinControls.UI; 010. 011.namespace WindowsFormsApplication1 012.{ 013. public partial class Form1 : Form 014. { 015. 016. public class A 017. { 018. public int Id 019. { get; set; } 020. 021. public string Name 022. { get; set; } 023. 024. public string Value 025. { get; set; } 026. } 027. 028. public class B 029. { 030. public int ParentId 031. { get; set; } 032. 033. public string Value 034. { get; set; } 035. } 036. 037. 038. BindingList<A> parentList; 039. 040. BindingList<B> childList; 041. 042. GridViewTemplate childTemplate; 043. 044. public Form1() 045. { 046. InitializeComponent(); 047. 048. radGridView1.ReadOnly = true; 049. 050. parentList = new BindingList<A>(new List<A>(new A[] { 051. new A() { Id = 1, Name = "name 1", Value = "value 1" }, 052. new A() { Id = 2, Name = "name 2", Value = "value 2" }, 053. })); 054. 055. childList = new BindingList<B>(new List<B>(new B[] { 056. //new B() { ParentId = 1 , Value = "b value 1"}, 057. //new B() { ParentId = 1 , Value = "b value 2"}, 058. new B() { ParentId = 2 , Value = "b value 3"}, 059. new B() { ParentId = 2 , Value = "b value 4"} 060. })); 061. 062. 063. childTemplate = AddMonitorPackageItemsTemplate(); 064. CreateRelation(childTemplate); 065. radGridView1.DataSource = bindingSource1; 066. 067. bindingSource1.DataSource = parentList; 068. bindingSource2.DataSource = childList; 069. 070. } 071. 072. void CreateRelation(GridViewTemplate childTemplate) 073. { 074. GridViewRelation monitoredItemToCSRelation = new GridViewRelation(radGridView1.MasterTemplate); 075. monitoredItemToCSRelation.ChildTemplate = childTemplate; 076. monitoredItemToCSRelation.RelationName = "childTemplateRelation"; 077. 078. monitoredItemToCSRelation.ParentColumnNames.Add("Id"); 079. monitoredItemToCSRelation.ChildColumnNames.Add("ParentId"); 080. radGridView1.Relations.Add(monitoredItemToCSRelation); 081. } 082. 083. GridViewTemplate AddMonitorPackageItemsTemplate() 084. { 085. GridViewTemplate monitoredPackageItemTemplate = new GridViewTemplate(); 086. monitoredPackageItemTemplate.DataSource = bindingSource2; 087. radGridView1.Templates.Add(monitoredPackageItemTemplate); 088. return monitoredPackageItemTemplate; 089. } 090. 091. private void button1_Click(object sender, EventArgs e) 092. { 093. childList.Add(new B() { ParentId = 1, Value = Guid.NewGuid().ToString() }); 094. } 095. 096. 097. /// <summary> 098. /// Required designer variable. 099. /// </summary> 100. private System.ComponentModel.IContainer components = null; 101. 102. /// <summary> 103. /// Clean up any resources being used. 104. /// </summary> 105. /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> 106. protected override void Dispose(bool disposing) 107. { 108. if (disposing && (components != null)) 109. { 110. components.Dispose(); 111. } 112. base.Dispose(disposing); 113. } 114. 115. #region Windows Form Designer generated code 116. 117. /// <summary> 118. /// Required method for Designer support - do not modify 119. /// the contents of this method with the code editor. 120. /// </summary> 121. private void InitializeComponent() 122. { 123. this.components = new System.ComponentModel.Container(); 124. this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); 125. this.bindingSource2 = new System.Windows.Forms.BindingSource(this.components); 126. this.radGridView1 = new Telerik.WinControls.UI.RadGridView(); 127. this.button1 = new System.Windows.Forms.Button(); 128. ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); 129. ((System.ComponentModel.ISupportInitialize)(this.bindingSource2)).BeginInit(); 130. ((System.ComponentModel.ISupportInitialize)(this.radGridView1)).BeginInit(); 131. this.radGridView1.SuspendLayout(); 132. this.SuspendLayout(); 133. // 134. // radGridView1 135. // 136. this.radGridView1.Controls.Add(this.button1); 137. this.radGridView1.Dock = System.Windows.Forms.DockStyle.Fill; 138. this.radGridView1.Location = new System.Drawing.Point(0, 0); 139. this.radGridView1.Name = "radGridView1"; 140. this.radGridView1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 1); 141. // 142. // 143. // 144. this.radGridView1.RootElement.Padding = new System.Windows.Forms.Padding(0, 0, 0, 1); 145. this.radGridView1.Size = new System.Drawing.Size(649, 328); 146. this.radGridView1.TabIndex = 0; 147. this.radGridView1.Text = "radGridView1"; 148. // 149. // button1 150. // 151. this.button1.Location = new System.Drawing.Point(562, 3); 152. this.button1.Name = "button1"; 153. this.button1.Size = new System.Drawing.Size(75, 23); 154. this.button1.TabIndex = 0; 155. this.button1.Text = "button1"; 156. this.button1.UseVisualStyleBackColor = true; 157. this.button1.Click += new System.EventHandler(this.button1_Click); 158. // 159. // Form1 160. // 161. this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 162. this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 163. this.ClientSize = new System.Drawing.Size(649, 328); 164. this.Controls.Add(this.radGridView1); 165. this.Name = "Form1"; 166. this.Text = "Form1"; 167. ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); 168. ((System.ComponentModel.ISupportInitialize)(this.bindingSource2)).EndInit(); 169. ((System.ComponentModel.ISupportInitialize)(this.radGridView1)).EndInit(); 170. this.radGridView1.ResumeLayout(false); 171. this.ResumeLayout(false); 172. 173. } 174. 175. #endregion 176. 177. private System.Windows.Forms.BindingSource bindingSource1; 178. private System.Windows.Forms.BindingSource bindingSource2; 179. private Telerik.WinControls.UI.RadGridView radGridView1; 180. private System.Windows.Forms.Button button1; 181. } 182.} Regards.

ExportToExcelML
exporter = new ExportToExcelML(rgvGrid);
exporter.SummariesExportOption =
SummariesOption.ExportAll;
exporter.RunExport(sFilepath);
and its works correctly but i need export only several columns of the gridView.. i have been looking how i could do that..
i need to export only two columns.. not all..
thanks for your help...
best wish..
Hello, this is my first post here at Telerik, I tried to find here some solution but without success.
I have a Value Object (VO) which I assign to the gridView DataSource, all the data is showed by the gridView! The problem starts when inside the VO I assign a dateTime as MinValue the gridView shows "01/01/0001", now my question is which is the best approach to show " " instead of "01/01/0001" ?
Thanks,
Marcelo Serragnoli
Hi
2010 Q2 SP2
I have grid with 500 rows and enabled multiselection.
I select first row and start multiselection (SHIFT and arrow down buttons). During selecting rows between 1 and 7 or 8 everything is fine (rows are selected – notification by orange background).
When I cross row 7 or 8 my one CPU core jumps to 50% and there is no notification that next rows are selected.
I have to stop multiselection to see orange background for selected rows.
I tested this for bound and unbound mode.
Is there any way to improve performance of this simple functionality?
I am more interested about unbound mode because in ma case I have variable number of columns.
Here you can read my simple source code:
public class MySample { public string Property1 { get; set; } public string Property2 { get; set; } public string Property3 { get; set; } public string Property4 { get; set; } public string Property5 { get; set; } public string Property6 { get; set; } public string Property7 { get; set; } public string Property8 { get; set; } public string Property9 { get; set; } public string Property10 { get; set; } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Telerik.WinControls.UI; namespace PerformanceIssue { public partial class Form1 : Form { List<MySample> _list; public Form1() { InitializeComponent(); _list = this.GenerateList(); } private void btnPopulateBound_Click(object sender, EventArgs e) { radGridViewBound.DataSource = _list; foreach (GridViewDataColumn col in radGridViewBound.Columns) { col.Width = 100; } radGridViewBound.MultiSelect = true; radGridViewBound.Columns[0].IsPinned = true; } private void btnPopulateUnbound_Click(object sender, EventArgs e) { GridViewTextBoxColumn col = null; GridViewRowInfo row = null; for (int index = 1; index <= 10; index++) { col = new GridViewTextBoxColumn(); radGridViewUnbound.Columns.Add(col); col.Width = 100; } foreach (MySample item in _list) { row = radGridViewUnbound.Rows.AddNew(); row.Cells[0].Value = item.Property1; row.Cells[1].Value = item.Property2; row.Cells[2].Value = item.Property3; row.Cells[3].Value = item.Property4; row.Cells[4].Value = item.Property5; row.Cells[5].Value = item.Property6; row.Cells[6].Value = item.Property7; row.Cells[7].Value = item.Property8; row.Cells[8].Value = item.Property9; row.Cells[9].Value = item.Property10; } radGridViewUnbound.MultiSelect = true; radGridViewUnbound.Columns[0].IsPinned = true; } private List<MySample> GenerateList() { List<MySample> list = new List<MySample>(); MySample item = null; for (int index = 0; index < 500; index++) { item = new MySample() { Property1 = string.Format("Row: {0}, Col: {1}", index, 1), Property2 = string.Format("Row: {0}, Col: {1}", index, 2), Property3 = string.Format("Row: {0}, Col: {1}", index, 3), Property4 = string.Format("Row: {0}, Col: {1}", index, 4), Property5 = string.Format("Row: {0}, Col: {1}", index, 5), Property6 = string.Format("Row: {0}, Col: {1}", index, 6), Property7 = string.Format("Row: {0}, Col: {1}", index, 7), Property8 = string.Format("Row: {0}, Col: {1}", index, 8), Property9 = string.Format("Row: {0}, Col: {1}", index, 9), Property10 = string.Format("Row: {0}, Col: {1}", index, 10) }; list.Add(item); } return list; } } }
Regards