我有这个DevExpress GridContro
l我添加了两个coloums,其中包含repositoryItemCheckEdit
和另一个普通string
类别说明。
现在我在属性部分中将repositoryItemCheckEdit
设为未绑定的bool并添加gridView1_CustomUnboundColumnData
事件,该事件以e.IsGetData
为真,但e.IsSetData
永远不会为真当我点击复选框时。谁能解释为什么会这样?
感谢
private void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e)
{
if (e.IsGetData)
{
string itemKey = ((CategoryTable)(gridControl1.ViewCollection[0]).GetRow(e.RowHandle)).Category;
if (AddressDoc == itemKey) e.Value = true
else e.Value = false;
}
if (e.IsSetData)
AddressDoc = ((CategoryTable)(gridControl1.ViewCollection[0]).GetRow(e.RowHandle)).Category;
}
答案 0 :(得分:0)
请尝试使用我们网站上发布的How to save the value of an in-place check box as soon as it is changed知识库文章中的解决方案。它应该可以帮助您解决此问题。此外,我已经审查了您的代码,它看起来并不安全。我会改变如下:
private void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) {
GridView gridView = sender as GridView;
DataView dv = gridView.DataSource;
object c = DataView[e.ListSourceRowIndex]["Category"];
string itemKey = c == null ? "" : c.ToString();
if (e.IsGetData) {
if(AddressDoc == itemKey)
e.Value = true;
else
e.Value = false;
}
if(e.IsSetData)
AddressDoc = itemKey;
}
我只能认为你没有正确调整未绑定的列。注意:列应满足两个强制条件: 1)它的FieldName应设置为其他GridView列的fieldName属性中的唯一值; 2)列的UnboundType应设置为非Bound值。