ASPxGridView不能编辑ReadOnly为False的行
本文关键字:False 的行 ReadOnly 不能 编辑 ASPxGridView | 更新日期: 2023-09-27 18:08:40
我目前正在aspx网站上工作,其中我使用ASPxGridView控件。我能够以我想要的方式显示GridView上的数据。但是,当我单击Edit按钮(由命令列下的控件本身提供)时,就会出现问题。单击上述按钮后,GridView会将行更改为可编辑的行。但是,我不能更改文本框内的值。请注意,我已经在GridView的智能标签和xml源本身上设置了ReadOnly属性为false。
我试图创建一个测试标志,其中文本框的背景色将更改为蓝色,每当ReadOnly属性设置为true。运行程序后,无论ReadOnly设置为true还是false,文本框都将显示为蓝色。
是否有其他属性可以帮助我使这些文本框可编辑?非常感谢!
干杯!
我今天遇到了同样的问题。如果将数据源设置为匿名类型,则可能出现此症状:
void BindDataGrid()
{
var gridData = from cm in MyCollection
select new
{
UniqueId = cm.UniqueId,
Min = cm.SomeNumber ?? 0,
Max = cm.SomeOtherNumber ?? 0,
Description = cm.Description
};
this.myGrid.DataSource = gridData;
this.myGrid.DataBind();
}
修复方法是创建一个类供网格使用。然后,它能够找出每个单元格的数据类型,并且它们在UI中变为可编辑的:
public class MyGridViewModel
{
public Guid UniqueId { get; set; }
public int Min { get; set; }
public int Max { get; set; }
public string Description { get; set; }
}
void BindDataGrid()
{
var gridData = from cm in MyCollection
select new MyGridViewModel()
{
UniqueId = cm.UniqueId,
Min = cm.SomeNumber ?? 0,
Max = cm.SomeOtherNumber ?? 0,
Description = cm.Description
};
this.myGrid.DataSource = gridData;
this.myGrid.DataBind();
}
我犯了一个错误,试图编辑受保护的属性。如果一个属性有一个公共的getter和一个私有的或受保护的setter,那么它将在编辑表单中显示为一个只读字段。希望对大家有所帮助。