Telerik Forums
UI for WinForms Forum
4 answers
139 views
Hello Telerik Team,
I have a radgridview in my winforms application and i have a requirement where user will copy some fields of data from excel and pastes in the gridview, its is working perfect upto 1000 records pasting with a performance speed up to 40 sec, but when tried to paste more than 1000 it is taking time in minutes, after tried of pasting rows  more than 8000 , the form is not responding and application has hanged

i need the feature exactly how excel interacts with clipboard, but is there any limitation in clip board copy and pasting to radgird ??? i have checked the below possible threads, but couldn't find the answer

http://www.telerik.com/community/forums/winforms/gridview/paste-from-excel.aspx

http://www.telerik.com/support/kb/winforms/gridview/copy-pasting-rows-in-and-between-radgridviews-csv-format.aspx

can you please help
Sree
Top achievements
Rank 1
 answered on 14 Jan 2013
1 answer
127 views
hi,
i have an application where i am creating gridviews at run time. at a given time, the application can have 1 or x number of girdviews, each being hooked with the UserAddedRow event:
void myGrid_UserAddedRow(object sender, GridViewRowEventArgs e) { }

how can i, using the "sender" or the "e" parementers of the event handler get a reference to the associated GridView? the sender here is a Telerik.WinControls.UI.GridViewTemplate for which i am not able to find a property which would return the GridView object.

thanks.
Jack
Telerik team
 answered on 11 Jan 2013
3 answers
92 views
Why would dragging an appointment in Month-View reset the times for the Appointment

While dragging the appointment in the Week-view or the Day-view does not change the times 

How would I resolve this?
Ivan Todorov
Telerik team
 answered on 11 Jan 2013
2 answers
153 views
Hi Telerik Team,

We are using the Conditional formatting dialog of RadGridView.
Our application is in German, I have localized the dialog. In the dialog, there are three strings, which can not be localizes with the LocalizationProvider. I marked them in the attached image. Is it possible, to change these strings? The most important one is the text "Sort columns alphabetically".

Thank you for help,
Li
Li
Top achievements
Rank 1
 answered on 11 Jan 2013
2 answers
289 views
i have a raddock with 2 areas, the top is a doc manager and the bottom is a tool window.
i have the tool window buttons set to only autohide.  when the user auto hides though, i want it to stay open to a certain size.  (say 300 px tall) instead of collapsing.  this would let them still see and edit stuff on the tool window.  when they open and pin it, it should be bigger (say 700 px etc).  so it's not really collapsing, just being made smaller.  is there a way to do this with the tool window or something similar?

thanks!
John
Top achievements
Rank 1
 answered on 10 Jan 2013
3 answers
770 views
Hello Team,
I have a requirement in the gridview, in such a way that it should allow me to add additional menu items to the exiting context menu of column header, my gridview contains  columns like Depth, Densities with corresponding Unit of measurements meters (m) and Specific gravity (sg), i should allow user to convert the Unit of measurement of Depth column to feet from meters,
For this i want to add some menu items to the existing context menu of column header, and then multiply entire column with scaling factor 3.8 so that it converts from meters to feet.

Can you help me out how to add context menu items to the existing ???
Plamen
Telerik team
 answered on 10 Jan 2013
1 answer
314 views
Hello Team,
i have a grid with 6 different columns each should be saved in different database tables. my grid is having more than 30,000 records
is there any way to take gridview column data into temperory table and from there to insert into database tables
and  row level data saving is fine since it is single line update into database, where as  updating entire grid with 30,000 records, taking time to save

please suggest me
Plamen
Telerik team
 answered on 10 Jan 2013
7 answers
328 views
Hi,

I have a hierarchical grid with custom multi select behavior.
I recently upgraded to Q3 2012. Now I get an exception when I try to select multiple rows that have childrows with the mouse.
This is the exception:
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException()
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at System.Collections.ObjectModel.Collection`1.get_Item(Int32 index)
   at Telerik.WinControls.UI.GridRowBehavior.DoMultiFullRowSelect(Boolean shift, Boolean control)
   at Telerik.WinControls.UI.GridRowBehavior.DoMouseSelection(GridCellElement currentCell, Point currentLocation)
   at Telerik.WinControls.UI.GridRowBehavior.ProcessMouseSelection(Point mousePosition, GridCellElement currentCell)
   at Telerik.WinControls.UI.GridRowBehavior.OnMouseMove(MouseEventArgs e)
   at Telerik.WinControls.UI.BaseGridBehavior.OnMouseMove(MouseEventArgs e)
   at Telerik.WinControls.UI.RadGridView.OnMouseMove(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseMove(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at Telerik.WinControls.RadControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
----------------------------------------

I made a test application that reproduces the problem.
The application contains 2 files:
  • Form1.cs
  • CustomRowInfos.cs

Form1.cs:

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Telerik.WinControls.UI;
 
namespace GridWithIndexedHierarchySpike
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            dummyGridView.Dock = DockStyle.Fill;
            dummyGridView.Parent = this;
            dummyGridView.BringToFront();
            dummyGridView.MultiSelect = true;
            dummyGridView.UseScrollbarsInHierarchy = true;
        }
 
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
 
            GridViewTemplate childTemplate = CreateChildTemplate();
            dummyGridView.Templates.Add(childTemplate);
            childTemplate.HierarchyDataProvider = new GridViewEventDataProvider(childTemplate);
 
            //grid events
            dummyGridView.RowSourceNeeded += gridView_RowSourceNeeded;
            dummyGridView.CreateRowInfo += CreateGridViewHierarchyRowInfoWithCustomSelectBehavior;
            dummyGridView.Templates[0].CreateRowInfo += CreateGridViewDataRowInfoWhitCustomSelectBehavior;
 
            //databind
            dummyGridView.DataSource = CreateDummyData(5);
        }
  
        void gridView_RowSourceNeeded(object sender, GridViewRowSourceNeededEventArgs e)
        {
            List<SomeData> data = CreateDummyData(2);
            foreach (SomeData someData in data)
            {
                GridViewRowInfo row = e.Template.Rows.NewRow();
                row.Cells[0].Value = someData.Name;
                row.Cells[1].Value = someData.SomeDataId;
                row.Cells[2].Value = someData.ParentDataId;
  
                e.SourceCollection.Add(row);
            }
        }
 
        private static void CreateGridViewHierarchyRowInfoWithCustomSelectBehavior(object sender, GridViewCreateRowInfoEventArgs e)
        {
            if (e.RowInfo is GridViewHierarchyRowInfo)
            {
                e.RowInfo = new MultiSelectGridViewHierarchyRowInfo(e.ViewInfo);
            }
        }
 
        private static void CreateGridViewDataRowInfoWhitCustomSelectBehavior(object sender, GridViewCreateRowInfoEventArgs e)
        {
            if (e.RowInfo is GridViewDataRowInfo)
            {
                e.RowInfo = new MultiSelectGridViewDataRowInfo(e.ViewInfo);
            }
        }
 
        private GridViewTemplate CreateChildTemplate()
        {
            var template = new GridViewTemplate {AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill};
            var namecolumn = new GridViewTextBoxColumn("Name");
            var idColumn = new GridViewTextBoxColumn("ID");
            var parentColumn = new GridViewTextBoxColumn("Parent");
            template.Columns.AddRange(namecolumn, idColumn, parentColumn);
            return template;
        }
  
        private static List<SomeData> CreateDummyData(int nbrRows)
        {
            var data = new List<SomeData>();
            var someData = new SomeData { Name = Guid.NewGuid().ToString(), ParentDataId = null, SomeDataId = 0 };
  
            data.Add(someData);
            for (int i = 1; i <= nbrRows - 1; i++)
            {
                var someChildData = new SomeData()
                {
                    Name = Guid.NewGuid().ToString(),
                    ParentDataId = someData.SomeDataId,
                    SomeDataId = i
                };
                data.Add(someChildData);
            }
  
            return data;
        }
 
        public class SomeData
        {
            public int SomeDataId { get; set; }
            public int? ParentDataId { get; set; }
            public string Name { get; set; }
        }
    }
}

CustomRowInfos.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Telerik.WinControls.UI;
 
namespace GridWithIndexedHierarchySpike
{
    /// <summary>
    /// Hierarchy row with custom select behavior.
    /// When the row is (de)selected, all child rows are (de)selected
    /// </summary>
    public class MultiSelectGridViewHierarchyRowInfo : GridViewHierarchyRowInfo
    {
        public static bool ParentSilentUpdate;
        public static bool OverrideChildSelection;
 
        public MultiSelectGridViewHierarchyRowInfo(GridViewInfo owner)
            : base(owner)
        {
            ParentSilentUpdate = false;
        }
 
        protected override bool SetBooleanProperty(string propertyName, int propertyKey, bool value)
        {
            bool result = base.SetBooleanProperty(propertyName, propertyKey, value);
 
            if (result && propertyName == "IsSelected")
            {
                if (!MultiSelectGridViewDataRowInfo.ChildSilentUpdate)
                {
                    //parent row is selected/deselected;
                    SelectChildRows(value);
                }
            }
 
            return result;
        }
 
 
        private void SelectChildRows(bool isSelected)
        {
            if (OverrideChildSelection) return;
 
            ParentSilentUpdate = true;
            foreach (MultiSelectGridViewDataRowInfo row in this.ChildRows)
            {
                row.IsSelected = isSelected;
            }
            ParentSilentUpdate = false;
        }
    }
 
    /// <summary>
    /// Data row with custom select behavior.
    /// If the row is a child row of a parent row then
    /// the parent row is selected when the child rows (or one of its siblings) is selected,
    /// otherwise the parent row is deselected.
    /// </summary>
    public class MultiSelectGridViewDataRowInfo : GridViewDataRowInfo
    {
        public static bool ChildSilentUpdate;
        public MultiSelectGridViewDataRowInfo(GridViewInfo viewInfo)
            : base(viewInfo)
        {
            ChildSilentUpdate = false;
        }
 
        public object OriginalBoundItem { get; set; }
 
        protected override bool SetBooleanProperty(string propertyName, int propertyKey, bool value)
        {
           
            bool result = base.SetBooleanProperty(propertyName, propertyKey, value);
 
            if (result && propertyName == "IsSelected")
            {
                if (!MultiSelectGridViewHierarchyRowInfo.ParentSilentUpdate)
                {
                    //child row is selected
                    SelectParentRow(value);
                }
            }
 
            return result;        
        }
 
        private void SelectParentRow(bool isSelected)
        {
            var parent = Parent as MultiSelectGridViewHierarchyRowInfo;
            if (parent == null) return;
 
            ChildSilentUpdate = true;
            if (isSelected)
            {
                parent.IsSelected = true;
            }
            else
            {
                //check if there are other rows
                bool selected = GetParentRowSelection(parent);
                parent.IsSelected = selected;
            }
            ChildSilentUpdate = false;
        }
 
        private bool GetParentRowSelection(MultiSelectGridViewHierarchyRowInfo parent)
        {
            //if there is one selected child row, return true
            return parent.ChildRows.Cast<MultiSelectGridViewDataRowInfo>().Any(row => row != this && row.IsSelected);
        }
    }
}

Jack
Telerik team
 answered on 10 Jan 2013
3 answers
231 views
Hi all,
Ive read on the forums that if I dont want the first row in my gridview to be selected whenever I bind to a datasource, i could set the "CurrentRow" to nothing.

I use version: 2012.3.1211.20

When I try this however, I get an "Index was out of range. Must be non-negative and less than the size of the collection"

I have binded my grid to a list of my custom object.
Then ive tried the following:

gridview1.CurrentRow = nothing
and
gridview1.ClearSelection()

Both commands result in the "Index out of range"

Anybody else experienced the same problem?

Thanks.




Plamen
Telerik team
 answered on 10 Jan 2013
1 answer
156 views
I have a combobox which is bound to a list of DictionaryEntries. And I would like that when the form is shown no item is selected (SelectedItem = null).

Test program
public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      Bind(GetList());
      Print("Before show");
    }
 
    public void Bind(
      List<DictionaryEntry> p_List)
    {
      radDropDownList1.ValueMember = "Key";
      radDropDownList1.DisplayMember = "Value";
      radDropDownList1.DataSource = p_List;
      radDropDownList1.SelectedIndex = -1;
      radDropDownList1.SelectedItem = null;
      radDropDownList1.SelectedValue = null;
    }
 
    private List<DictionaryEntry> GetList()
    {
      return new List<DictionaryEntry>
               {
                 new DictionaryEntry(0, "Entry 0"),
                 new DictionaryEntry(1, "Entry 1")
               };
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
      Bind(GetList());
      Print("rebind");
    }
 
    private void Print(string p_Message)
    {
      richTextBox1.AppendText(String.Format("{2}\nSelectedIndex = {0}\nSelectedValue = {1}\n\n",
                                        radDropDownList1.SelectedIndex, radDropDownList1.SelectedValue, p_Message));
    }
     
    private void Form1_Shown(object sender, EventArgs e)
    {
      Print("OnShow");
    }
 
    private void button2_Click(object sender, EventArgs e)
    {
      Print("Print state");
    }
  }

The problem is that when the form is shown DropDownList automatically selects first element in the list (SelectedIndex, SelectedItem,.. are updated but Text is not).
If I rebind after the form is shown DropDownList works correctly.

Can I bind a list in a way that Form.Show will not select the first element in the list (SelectedItem = null)?
Peter
Telerik team
 answered on 10 Jan 2013
Narrow your results
Selected tags
Tags
GridView
General Discussions
Scheduler and Reminder
Treeview
Dock
RibbonBar
Themes and Visual Style Builder
ChartView
Calendar, DateTimePicker, TimePicker and Clock
DropDownList
Buttons, RadioButton, CheckBox, etc
ListView
ComboBox and ListBox (obsolete as of Q2 2010)
Form
Chart (obsolete as of Q1 2013)
PageView
MultiColumn ComboBox
TextBox
RichTextEditor
PropertyGrid
Menu
RichTextBox (obsolete as of Q3 2014 SP1)
Panelbar (obsolete as of Q2 2010)
PivotGrid and PivotFieldList
Tabstrip (obsolete as of Q2 2010)
MaskedEditBox
PdfViewer and PdfViewerNavigator
CommandBar
ListControl
Carousel
GanttView
Diagram, DiagramRibbonBar, DiagramToolBox
Panorama
New Product Suggestions
VirtualGrid
Toolstrip (obsolete as of Q3 2010)
Label
AutoCompleteBox
Spreadsheet
ContextMenu
Panel
Visual Studio Extensions
TitleBar
SplitContainer
Documentation
Map
DesktopAlert
CheckedDropDownList
ProgressBar
MessageBox
TrackBar
Rotator
SpinEditor
CheckedListBox
StatusStrip
Wizard
CollapsiblePanel
LayoutControl
ShapedForm
SyntaxEditor
TextBoxControl
Conversational UI, Chat
DateTimePicker
TabbedForm
CAB Enabling Kit
WaitingBar
GroupBox
DataEntry
ScrollablePanel
ScrollBar
ImageEditor
Tools - VSB, Control Spy, Shape Editor
BrowseEditor
DataFilter
FileDialogs
ColorDialog
Gauges (RadialGauge, LinearGauge, BulletGraph)
ApplicationMenu
RangeSelector
CardView
WebCam
NavigationView
BindingNavigator
RibbonForm
Styling
Barcode
PopupEditor
TaskBoard
Callout
ColorBox
PictureBox
FilterView
Accessibility
VirtualKeyboard
DataLayout
Licensing
ToastNotificationManager
ValidationProvider
CalculatorDropDown
Localization
TimePicker
BreadCrumb
ButtonTextBox
FontDropDownList
BarcodeView
Overlay
Security
LocalizationProvider
Dictionary
TreeMap
StepProgressBar
SplashScreen
Flyout
Separator
SparkLine
ToolbarForm
NotifyIcon
DateOnlyPicker
AI Coding Assistant
Rating
TimeSpanPicker
Calculator
OfficeNavigationBar
TaskbarButton
HeatMap
SlideView
PipsPager
AIPrompt
TaskDialog
TimeOnlyPicker
SpeechToTextButton
SmartPasteButton
+? more
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?