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,文本框都将显示为蓝色。

是否有其他属性可以帮助我使这些文本框可编辑?非常感谢!

干杯!

ASPxGridView不能编辑ReadOnly为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,那么它将在编辑表单中显示为一个只读字段。希望对大家有所帮助。