I've trawled the web and have exhausted troubleshooting. Despite others asking very similar questions nothing seems to allow me edit a Checkbox in a Template Column.
I've attached a screenshot and what I'm doing is possible as its shown here: http://www.telerik.com/help/winforms/gridview-hierarchical-grid-tutorial-binding-to-hierarchical-data.html
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.radGridView1.BeginUpdate();
LoadData();
this.radGridView1.UseScrollbarsInHierarchy = true;
this.radGridView1.AutoExpandGroups = true;
this.radGridView1.ShowGroupPanel = false;
this.radGridView1.AllowAddNewRow = false;
this.radGridView1.EndUpdate();
}
private void LoadData()
{
latestRevisions = DAL.GetTemplatesLatestRevisionsBySearchCrtieria(...);
pastRevisions = DAL.GetTemplatesPastRevisionsBySearchCrtieria(...);
latestRevisionsBindingSource.DataSource = latestRevisions;
pastRevisionsBindingSource.DataSource = pastRevisions;
radGridView1.DataSource = latestRevisionsBindingSource;
radGridView1.MasterGridViewTemplate.Columns["Name"].Width = 150;
radGridView1.MasterGridViewTemplate.Columns["TemplateID"].IsVisible = false;
radGridView1.MasterGridViewTemplate.Columns["ParentTemplateID"].IsVisible = false;
radGridView1.MasterGridViewTemplate.Columns["Description"].Width = radGridView1.Width - twoHundred;
radGridView1.MasterGridViewTemplate.Columns["ImagePreview"].IsVisible = false;
foreach (GridViewDataColumn column in this.radGridView1.Columns)
{
column.ReadOnly = (column.Name != "Compare");
}
LoadDetailsTable();
}
void LoadDetailsTable()
{
GridViewTemplate template = new GridViewTemplate();
template.Caption = "Latest Revisions";
template.DataSource = pastRevisions;
template.AllowRowResize = false;
template.ShowColumnHeaders = false;
template.Columns["ImagePreview"].Width = 100;
template.ReadOnly = true;
template.Columns["Description"].Width = 245;
template.Columns["Description"].DisableHTMLRendering = false;
template.Columns["Compare"].Width = 60;
template.Columns["Compare"].ReadOnly = false; //<-- Read-Only is false!!!
this.radGridView1.Templates.Insert(0, template);
GridViewRelation relation = new GridViewRelation(this.radGridView1.MasterTemplate);
relation.ChildTemplate = template;
relation.ParentColumnNames.Add("TemplateID");
relation.ChildColumnNames.Add("ParentTemplateID");
this.radGridView1.Relations.Add(relation);
HtmlViewDefinition viewDef = new HtmlViewDefinition();
viewDef.RowTemplate.Rows.Add(new RowDefinition());
viewDef.RowTemplate.Rows.Add(new RowDefinition());
viewDef.RowTemplate.Rows[0].Cells.Add(new CellDefinition("ImagePreview", 0, 1, 2));
viewDef.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Description", 0, 1, 2));
viewDef.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Compare", 0, 1, 2));
template.ViewDefinition = viewDef;
}
private void radGridView1_SelectionChanged(object sender, EventArgs e)
{
if (prevRow != null)
prevRow.Cells["Compare"].Value = false;
prevRow = this.radGridView1.SelectedRows[0];
this.radGridView1.Columns["Compare"].ReadOnly = false;
this.radGridView1.SelectedRows[0].Cells["Compare"].ReadOnly = false;
this.radGridView1.SelectedRows[0].Cells["Compare"].Value = true; /<- Throws an Error "Column 'Compare' is read only.!!!
}
If anyone could tell me how to fix this it would be much appreciated. I've spent two days on this now.
I've attached a screenshot and what I'm doing is possible as its shown here: http://www.telerik.com/help/winforms/gridview-hierarchical-grid-tutorial-binding-to-hierarchical-data.html
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.radGridView1.BeginUpdate();
LoadData();
this.radGridView1.UseScrollbarsInHierarchy = true;
this.radGridView1.AutoExpandGroups = true;
this.radGridView1.ShowGroupPanel = false;
this.radGridView1.AllowAddNewRow = false;
this.radGridView1.EndUpdate();
}
private void LoadData()
{
latestRevisions = DAL.GetTemplatesLatestRevisionsBySearchCrtieria(...);
pastRevisions = DAL.GetTemplatesPastRevisionsBySearchCrtieria(...);
latestRevisionsBindingSource.DataSource = latestRevisions;
pastRevisionsBindingSource.DataSource = pastRevisions;
radGridView1.DataSource = latestRevisionsBindingSource;
radGridView1.MasterGridViewTemplate.Columns["Name"].Width = 150;
radGridView1.MasterGridViewTemplate.Columns["TemplateID"].IsVisible = false;
radGridView1.MasterGridViewTemplate.Columns["ParentTemplateID"].IsVisible = false;
radGridView1.MasterGridViewTemplate.Columns["Description"].Width = radGridView1.Width - twoHundred;
radGridView1.MasterGridViewTemplate.Columns["ImagePreview"].IsVisible = false;
foreach (GridViewDataColumn column in this.radGridView1.Columns)
{
column.ReadOnly = (column.Name != "Compare");
}
LoadDetailsTable();
}
void LoadDetailsTable()
{
GridViewTemplate template = new GridViewTemplate();
template.Caption = "Latest Revisions";
template.DataSource = pastRevisions;
template.AllowRowResize = false;
template.ShowColumnHeaders = false;
template.Columns["ImagePreview"].Width = 100;
template.ReadOnly = true;
template.Columns["Description"].Width = 245;
template.Columns["Description"].DisableHTMLRendering = false;
template.Columns["Compare"].Width = 60;
template.Columns["Compare"].ReadOnly = false; //<-- Read-Only is false!!!
this.radGridView1.Templates.Insert(0, template);
GridViewRelation relation = new GridViewRelation(this.radGridView1.MasterTemplate);
relation.ChildTemplate = template;
relation.ParentColumnNames.Add("TemplateID");
relation.ChildColumnNames.Add("ParentTemplateID");
this.radGridView1.Relations.Add(relation);
HtmlViewDefinition viewDef = new HtmlViewDefinition();
viewDef.RowTemplate.Rows.Add(new RowDefinition());
viewDef.RowTemplate.Rows.Add(new RowDefinition());
viewDef.RowTemplate.Rows[0].Cells.Add(new CellDefinition("ImagePreview", 0, 1, 2));
viewDef.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Description", 0, 1, 2));
viewDef.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Compare", 0, 1, 2));
template.ViewDefinition = viewDef;
}
private void radGridView1_SelectionChanged(object sender, EventArgs e)
{
if (prevRow != null)
prevRow.Cells["Compare"].Value = false;
prevRow = this.radGridView1.SelectedRows[0];
this.radGridView1.Columns["Compare"].ReadOnly = false;
this.radGridView1.SelectedRows[0].Cells["Compare"].ReadOnly = false;
this.radGridView1.SelectedRows[0].Cells["Compare"].Value = true; /<- Throws an Error "Column 'Compare' is read only.!!!
}
If anyone could tell me how to fix this it would be much appreciated. I've spent two days on this now.