我是devexpress的新手。当我添加新行并在一个单元格中填充一些值时,我将注意力集中到同一行中的其他单元格上,而该单元格中的值丢失了。
这是我的代码(gridview中的列名称与Datatable dtGroupRole中的列匹配)

FrmUser.cs
...
adminGroupRoles = AdminGroupRoles.GetAllGroupRoles().ToList();
dtGroupRole = GlobalVars.ToDataTable<AdminGroupRoles>(adminGroupRoles);
grdGroupRoles.DataSource = adminGroupRoles;


AdminGroupRoles.cs
public class AdminGroupRoles
{
    public int GroupId { get; set; }
    public string GroupName { get; set; }

    public static List<AdminGroupRoles> GetAllGroupRoles()
    {
        return AdminGroupRoles.Inst.ExeStoreToList("sp_AdminUsers_GetAllGroupRoles");
    }
}


已编辑的单元格被重置:



谢谢大家:)

最佳答案

我看到您将adminGroupRoles分配为网格源。这是一个清单。为了使网格可以添加新行,数据源应为IBindingList。 adminGroupRoles没有实现它。据我了解,dtGroupRole是从adminGroupRoles转换的DataTable。因此,您需要将其用作网格数据源:

adminGroupRoles = AdminGroupRoles.GetAllGroupRoles().ToList();
dtGroupRole = GlobalVars.ToDataTable<AdminGroupRoles>(adminGroupRoles);
grdGroupRoles.DataSource = dtGroupRole;

09-16 11:40