用户组管理

时间:2011-09-18 20:10:13

标签: asp.net-mvc entity-framework many-to-many

我正在尝试为网站实现用户管理功能。 我正在使用ASP.NET MVC 3,Entity Framework 4.1,MvcScaffolding。

让我们考虑实体:

用户实体:

public class User
{
    public int Id
    {
        get;
        set;
    }

    public string FirstName
    {
        get;
        set;
    }

    public string LastName
    {
        get;
        set;
    }

    public virtual ICollection<UserGroup> Groups
    {
        get;
        set;
    }
}

用户组实体:

public class UserGroup
{
    public int Id
    {
        get;
        set;
    }

    public string Name
    {
        get;
        set;
    }

    public virtual ICollection<User> Users
    {
        get;
        set;
    }
}

如您所见,用户与用户组实体之间存在多对多关系。

因此,我希望使用以下UI来编辑用户组:

User group editor

有两个网格: 1. 用户网格包含正在编辑的用户组的当前状态。 2. 浏览用户网格包含所有用户(已属于该用户组的用户除外)。单击此网格的用户行时,用户将移至用户网格。此外,此网格应支持分页,过滤和排序,以提供良好的用户浏览。

因此,用户选择用户组的用户,然后单击“保存”按钮。用户组控制器类应保存更改。

现在的问题是:如何实现功能?这种多对多关系问题有什么好的例子吗? 如果没有简单的解决方案,那么您可以建议我使用哪个用户组管理UI?

P.S。我对ASP.NET很新手,所以我没有意识到如何实现这样的动态网格。

更新1: 我已经查看了jqGrid示例。 link 请参阅高级 - &gt;多选 有问题,更改过滤器时复选框的选择会重置。尽管过滤器有变化,如何存储所有选定的ID?

1 个答案:

答案 0 :(得分:1)

Telerik网格很棒:http://demos.telerik.com/aspnet-mvc/grid/detailsajax 我无法理解你的整个场景,尤其是:“浏览用户网格包含所有用户(已经属于用户组的用户除外)。当点击该网格的用户行时,用户将被移动到用户网格”。
我认为情况可能是这样的:
如果用户在具体组中,则显示两个网格:
a)组中存在的用户,其中每行包含用户信息和按钮删除
b)不存在于组中的用户,其中每行包含用户信息和按钮添加

在这种情况下,所有逻辑都非常简单,你不需要任何奇特的逻辑,因为一切都在同一页面上。

在用户页面中,可能有一个包含组的网格,如果用户在该组中,则该行是按钮删除,如果用户不是,则有按钮添加。通过精心选择的用户dto进行编辑视图,实现起来也非常困难。

相关问题