ASPxGridView无法使用ReadOnly False编辑行

Smi*_*ley 0 c# asp.net aspxgridview

我目前正在使用aspx网站,其中我正在使用ASPxGridView控件.我可以按照我希望它出现的方式在GridView上显示数据.但是,当我单击"编辑"按钮(由控件本身在命令列下提供)时,会出现问题.单击所述按钮后,GridView会将该行更改为可编辑的行.但是,我无法更改文本框中的值.请注意,我已经在GridView的智能标记和xml源本身上将ReadOnly属性设置为false.

我试图创建一个测试标志,其中只要ReadOnly属性设置为true,文本框的背景颜色就会变为蓝色.运行程序后,无论ReadOnly设置为true还是false,文本框都将显示为蓝色.

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

干杯!

Ken*_*isa 5

我今天遇到了同样的问题.如果您将数据源设置为匿名类型,则会出现此症状:

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();
}
Run Code Online (Sandbox Code Playgroud)

修复是为要使用的网格创建一个类.然后,它能够找出每个单元格的数据类型,并且它们在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();
}
Run Code Online (Sandbox Code Playgroud)