如何使用 C# 在 gridcontrol devexpress 中设置 Check Repository 单选组
how to set Check Repository radio group in gridcontrol devexpress using C# from value another table
我在网格控制单元格中有存储库单选组,我想在存储库单选单元中设置检查,而值来自另一个单元格。这是我的样本:
当 ISJAWAB 值为 1 时,将在列 PILIH 中检查存储库单选组.
我试过简单的代码,但它不起作用:
private void gridView2_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.Column.FieldName == "PILIH")
{
var val = Convert.ToString(gridView2.GetRowCellValue(e.RowHandle, "ISJAWAB"));
if (val == "1")
{
e.DisplayText = "1"; //nilai 1 untuk select radio
}
}
}
在存储库集合中,我将值设置为 1,它会自动设置检查存储库单选组。
需要帮助??
在这种情况下,RadioGroup
不是就地编辑器的最佳选择,因为它为您提供了在单个单元格中显示多个选项的冗余功能。为了您的目的,您可以使用 CheckEdit
。此外,对于 CustomDrawCell
事件,您实际上必须手动重绘单选按钮。有一个使用未绑定列的更简单的解决方案。
所以我建议以下解决方案:
1.Add CheckEdit
存储库项,设置它的 CheckStyle
属性 等于 Radio
.
2.Make 你的 PILIH
列的 Unbound Type = Boolean
。将上面提到的 CheckEdit
存储库项目分配给它的 ColumnEdit
。设置 OptionsColumn.AllowEdit = false
.
3.Add gridView2.CustomUnboundColumnData
事件处理程序,正文如下:
private void gridView2_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.IsGetData && e.Column.FieldName == "PILIH")
{
var row = (DataRow) e.Row;
var val = Convert.ToString(row["ISJAWAB"]));
if (val == "1")
{
e.Value = true;
}
}
}
您必须将 reposityRadio 的类型从 1 改为 Boolean 改为 true :
第2个PILIH列数据源必须是bool类型
并使用此代码:
private void gridView2_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.Column.FieldName == "PILIH")
{
var val = Convert.ToString(gridView2.GetRowCellValue(e.RowHandle, "ISJAWAB"));
if (val == "1")
{
gridView2.SetRowCellValue(e.RowHandle, "PILIH", true);
}
}
}
结果应该是这样的:
我在网格控制单元格中有存储库单选组,我想在存储库单选单元中设置检查,而值来自另一个单元格。这是我的样本:
当 ISJAWAB 值为 1 时,将在列 PILIH 中检查存储库单选组.
我试过简单的代码,但它不起作用:
private void gridView2_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.Column.FieldName == "PILIH")
{
var val = Convert.ToString(gridView2.GetRowCellValue(e.RowHandle, "ISJAWAB"));
if (val == "1")
{
e.DisplayText = "1"; //nilai 1 untuk select radio
}
}
}
在存储库集合中,我将值设置为 1,它会自动设置检查存储库单选组。
需要帮助??
RadioGroup
不是就地编辑器的最佳选择,因为它为您提供了在单个单元格中显示多个选项的冗余功能。为了您的目的,您可以使用 CheckEdit
。此外,对于 CustomDrawCell
事件,您实际上必须手动重绘单选按钮。有一个使用未绑定列的更简单的解决方案。
所以我建议以下解决方案:
1.Add CheckEdit
存储库项,设置它的 CheckStyle
属性 等于 Radio
.
2.Make 你的 PILIH
列的 Unbound Type = Boolean
。将上面提到的 CheckEdit
存储库项目分配给它的 ColumnEdit
。设置 OptionsColumn.AllowEdit = false
.
3.Add gridView2.CustomUnboundColumnData
事件处理程序,正文如下:
private void gridView2_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.IsGetData && e.Column.FieldName == "PILIH")
{
var row = (DataRow) e.Row;
var val = Convert.ToString(row["ISJAWAB"]));
if (val == "1")
{
e.Value = true;
}
}
}
您必须将 reposityRadio 的类型从 1 改为 Boolean 改为 true :
第2个PILIH列数据源必须是bool类型 并使用此代码:
private void gridView2_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.Column.FieldName == "PILIH")
{
var val = Convert.ToString(gridView2.GetRowCellValue(e.RowHandle, "ISJAWAB"));
if (val == "1")
{
gridView2.SetRowCellValue(e.RowHandle, "PILIH", true);
}
}
}
结果应该是这样的: