I'm using Telerik WinControls 2014.3.1104.40 in a C# environment.
I have a gridview that has a number of preset columns, as well as zero or more additional, user-defined columns. I need a way to load this data into the grid.
Currently, I am trying to use C# "dynamic" objects, in hope that the FieldName property of each column will access that field of the dynamic object; but the grid does not appear to load anything from a list of dynamic objects.
There should be data loaded into the cells, but they show up blank. Here is a sample of the code that is not working:
private
void
LoadData()
{
radGridView1.DataSource =
new
List<dynamic>()
{
CreateDynamicObject(1),
CreateDynamicObject(2),
CreateDynamicObject(3),
};
}
private
dynamic CreateDynamicObject(
int
id)
{
dynamic ret =
new
ExpandoObject();
ret.Id = id;
ret.Prop1 =
"Property 1: "
+ id;
ret.Prop2 =
"Property 2: "
+ id;
return
ret;
}
If List<dynamic> data sources are not supported, what other method would be most similar?
Hello
I succeeded to put a listview in a cell of a grid. But I have some problems with it.
1. Why the first listview item is always highlighted.
2. How can I add the possibility to work with keyboard to select some listview items instead of mouse.
public class CheckListBoxCellElement : GridDataCellElement
{
public CheckListBoxCellElement(GridViewColumn column, GridRowElement row)
: base(column, row)
{
}
RadListViewElement radListElement;
protected override void CreateChildElements()
{
base.CreateChildElements();
radListElement = new RadListViewElement();
radListElement.ShowCheckBoxes = true;
radListElement.AllowArbitraryItemHeight = true;
radListElement.ViewType = ListViewType.IconsView;
radListElement.VisualItemFormatting += new ListViewVisualItemEventHandler(radListElement_VisualItemFormatting);
radListElement.ItemCheckedChanged += new ListViewItemEventHandler(radListElement_ItemCheckedChanged);
this.Children.Add(radListElement);
}
void radListElement_VisualItemFormatting(object sender, ListViewVisualItemEventArgs e)
{
BaseListViewVisualItem lvi = e.VisualItem as BaseListViewVisualItem;
lvi.DrawBorder = true;
lvi.DrawFill = true;
lvi.CanFocus = true;
}
void radListElement_ItemCheckedChanged(object sender, ListViewItemEventArgs e)
{
if (e.Item.CheckState == Telerik.WinControls.Enumerations.ToggleState.On)
{
PropertyValue val = (PropertyValue)e.Item.DataBoundItem;
val.Selected = true;
}
else
{
PropertyValue val = (PropertyValue)e.Item.DataBoundItem;
val.Selected = false;
}
}
protected override void SetContentCore(object value)
{
IList list = (IList)value;
radListElement.DataSource = list;
radListElement.DisplayMember = "Name";
radListElement.ValueMember = "ID";
}
protected override Type ThemeEffectiveType
{
get
{
return typeof(GridDataCellElement);
}
}
public override bool IsCompatible(GridViewColumn data, object context)
{
return data is CheckListBoxColumn && context is GridDataRowElement;
}
}
public class CheckListBoxColumn : GridViewDataColumn
{
public CheckListBoxColumn(string fieldName)
: base(fieldName)
{
}
public override Type GetCellType(GridViewRowInfo row)
{
if (row is GridViewDataRowInfo)
{
return typeof(CheckListBoxCellElement);
}
return base.GetCellType(row);
}
}
public class Data
{
public string Name { get; set; }
public IList Field { get; set; }
}
public partial class MYForm : Form
{
public MYForm()
{
InitializeComponent();
Init();
}
private void Init()
{
GridViewTextBoxColumn column1 = new GridViewTextBoxColumn("Name");
ksGrid.Columns.Add(column1);
CheckListBoxColumn column2 = new CheckListBoxColumn("Field");
ksGrid.Columns.Add(column2);
column2.Width = 250;
ksGrid.AutoGenerateColumns = false;
ArrayList list = new ArrayList();
IList values1 = new ArrayList();
values1.Add(new PropertyValue() { ID = 1, Name = "Blue" });
values1.Add(new PropertyValue() { ID = 2, Name = "Yellow" });
values1.Add(new PropertyValue() { ID = 3, Name = "Red" });
Data data1 = new Data { Name = "Color", Field = values1 };
list.Add(data1);
IList values2 = new ArrayList();
values2.Add(new PropertyValue() { ID = 4, Name = "M" });
values2.Add(new PropertyValue() { ID = 5, Name = "L" });
values2.Add(new PropertyValue() { ID = 6, Name = "XL" });
Data data2 = new Data { Name = "Size", Field = values2 };
list.Add(data2);
ksGrid.DataSource = list;
object ob = ksGrid.Rows[1];
}
Hi,
to facilitate and speed up insert row, when user press enter key all blank cell in current row must be copied from same cell (same column) of previous row.
At the begin the grid is blank, it not have datasource but only template for columns, user can add row by new row grid feature.
I have some problem when the edit row is the new row (not jet added to rows grid collection) and cell is in edit mode.
I try to create a custom GridBehavior to do this, but if row in edit is the new row i can't access it.
Thank you very much.
Dear Telerik Team,
It's possible to customize the PDF Navigator icons?
How can i do to load a PDF that i put inside my solution or inside of a database?
Kind regards
Hi there,
i have the following problem:
I have a RadScrollablePanel.
Inside this Panel i added two RadGroupBox-Controls.
The first is positioned in the upper left corner with Anchor = Left Top Right and minimum size of 300
The second is positioned in the upper right corner with Anchor = Top Right.
Now when resizing my Form, i expected when the Minium size is reached, the Scrollable Panel should show scrollbar.
I added an example project
Thanks Florian Keller
Hello
is there any way to have a rangebar where y_axis is a date (05/25/2015 11:00) and the category is a number ?
If so could I have an example
Thank you for you help
I am customizing a tile being put into a Panorama. I want some text to the lower part of the tile. I've done this by creating a "LightVisualElement" and adding it to the tile's children... I then add a RadLabelElement to that VisualElement and set it's text. I would like that ext to be centered to the lower middle of the tile, however nothign I can do can make this happen.
I am setting the VisualElement's alignment to BottomCenter, and tried the same with the RadLabelElement. Any suggestions would be greatly appreciated.
LightVisualElement lowerElement;
lowerElement.Alignment = ContentAlignment.BottomCenter;
lowerElement.StretchHorizontally = true;
tile.Children.Add(lowerElement);
RadLabelElement deviceInfo = new RadLabelElement();
deviceInfo.StretchHorizontally = true;
deviceInfo.TextAlignment = ContentAlignment.BottomCenter;
deviceInfo.Alignment = ContentAlignment.BottomCenter;
lowerElement.Children.Add(deviceInfo);
etc.... none of that helps.
If you have a look at http://www.telerik.com/help/winforms/gridview-grouping-basic-grouping.html, it talks about the grouping feature that comes with the RadGridView.
I would like to know if there is an event that fires when the user removes a group (clicks on the X in the top right corner of a group). Is there such an event?