列边界在 Telerik Grid for Winforms 中重叠
Column Boundaries getting overlapped in Telerik Grid for Winforms
我正在开发 Winform 应用程序。在上面使用 Telerik 控件。
在 1 个表单中,我需要有如上图所示的复合列。这些列是动态添加的(通过 C#),我使用了 HTMlViewDefinition。
问题是,列边界重叠,如上图所示。
我需要在 运行 时决定列宽,所以不想给它们静态宽度。
注意:出于保密原因,我已从快照中删除了列名,并将虚拟列名放入代码中。希望不是问题。
我们将不胜感激任何帮助。提前致谢
我为这个网格写的代码如下
var htmlView = new HtmlViewDefinition()
{
};
htmlView.RowTemplate.Rows.Add(new RowDefinition());
htmlView.RowTemplate.Rows.Add(new RowDefinition());
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("No"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col1"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col2"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col3"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col4"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col5"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col6"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col7"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col8"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col9"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col10"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col11"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col12"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col13"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col14"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col15"));
htmlView.RowTemplate.Rows[0].Cells[0].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[3].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[4].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[3].ColSpan = 1;
htmlView.RowTemplate.Rows[0].Cells[4].ColSpan = 1;
htmlView.RowTemplate.Rows[0].Cells[5].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[6].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[7].RowSpan = 3;
htmlView.RowTemplate.Rows[0].Cells[9].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[10].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[11].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[12].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[13].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[14].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[15].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Height = 30;
htmlView.RowTemplate.Rows[1].Cells.Add(new CellDefinition("Item Description"));
htmlView.RowTemplate.Rows[1].Cells[0].ColSpan = 2;
htmlView.RowTemplate.Rows[1].Cells.Add(new CellDefinition("Direction"));
htmlView.RowTemplate.Rows[1].Height = 30;
gridDrugList.BestFitColumns();
gridDrugList.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
gridDrugList.ViewDefinition = htmlView;
这似乎是具有 Html 视图定义的 known issue。建议的解决方法是订阅 RadGridView 的 SizeChanged 事件并刷新行:
private void RadGridView1_SizeChanged(object sender, EventArgs e)
{
radGridView1.TableElement.ViewElement.UpdateRows(true);
}
我正在开发 Winform 应用程序。在上面使用 Telerik 控件。
在 1 个表单中,我需要有如上图所示的复合列。这些列是动态添加的(通过 C#),我使用了 HTMlViewDefinition。
问题是,列边界重叠,如上图所示。
我需要在 运行 时决定列宽,所以不想给它们静态宽度。
注意:出于保密原因,我已从快照中删除了列名,并将虚拟列名放入代码中。希望不是问题。
我们将不胜感激任何帮助。提前致谢
我为这个网格写的代码如下
var htmlView = new HtmlViewDefinition()
{
};
htmlView.RowTemplate.Rows.Add(new RowDefinition());
htmlView.RowTemplate.Rows.Add(new RowDefinition());
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("No"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col1"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col2"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col3"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col4"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col5"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col6"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col7"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col8"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col9"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col10"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col11"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col12"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col13"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col14"));
htmlView.RowTemplate.Rows[0].Cells.Add(new CellDefinition("Col15"));
htmlView.RowTemplate.Rows[0].Cells[0].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[3].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[4].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[3].ColSpan = 1;
htmlView.RowTemplate.Rows[0].Cells[4].ColSpan = 1;
htmlView.RowTemplate.Rows[0].Cells[5].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[6].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[7].RowSpan = 3;
htmlView.RowTemplate.Rows[0].Cells[9].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[10].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[11].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[12].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[13].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[14].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Cells[15].RowSpan = 2;
htmlView.RowTemplate.Rows[0].Height = 30;
htmlView.RowTemplate.Rows[1].Cells.Add(new CellDefinition("Item Description"));
htmlView.RowTemplate.Rows[1].Cells[0].ColSpan = 2;
htmlView.RowTemplate.Rows[1].Cells.Add(new CellDefinition("Direction"));
htmlView.RowTemplate.Rows[1].Height = 30;
gridDrugList.BestFitColumns();
gridDrugList.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
gridDrugList.ViewDefinition = htmlView;
这似乎是具有 Html 视图定义的 known issue。建议的解决方法是订阅 RadGridView 的 SizeChanged 事件并刷新行:
private void RadGridView1_SizeChanged(object sender, EventArgs e)
{
radGridView1.TableElement.ViewElement.UpdateRows(true);
}