我试图实现一个网站的用户管理功能。我使用的是ASP.NET MVC 3,实体框架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:
有两个网格: 1. 用户网格包含正在编辑的用户组的当前状态。2. 浏览用户网格包含所有用户(已属于用户组的用户除外)。当单击此网格的用户行时,用户将被移动到用户网格。此外,这个网格应该支持分页、过滤和排序,以提供良好的用户浏览。
因此,用户为用户组选择用户,然后单击"Save“按钮。用户组控制器类应保存更改。
现在的问题是:如何实现这些功能?对于这种多到多的关系问题,有什么好的例子吗?如果没有简单的解决方案,您可以建议我使用什么UI来管理用户组?
我对ASP.NET还很陌生,所以我不知道如何实现这样的动态网格。
更新1:我查看了jqGrid示例。链接见高级->多选择有问题,当您更改过滤器时,复选框的选择被重置。如何在筛选器更改后存储所有选定的ID?
发布于 2011-09-19 07:21:02
Telerik拥有强大的网格:http://demos.telerik.com/aspnet-mvc/grid/detailsajax。
我无法理解您的整个场景,特别是“浏览用户网格包含所有用户(已属于用户组的用户除外),当单击此网格的用户行时,用户将被移动到用户网格”。
我认为情况可能是这样的:
如果用户位于具体组,则显示两个网格:
a)存在于组中的用户,其中每一行都包含用户信息和按钮删除
b)组中不存在的用户,其中每一行都包含用户信息和按钮添加。
在这种情况下,所有的逻辑都是非常简单的,您不需要任何花哨的逻辑,因为一切都在同一页上。
在用户页面中,可能有一个包含组的网格,如果用户在该组中,则行中为按钮删除,如果用户不在,则有按钮添加。有了精心选择的用户dto编辑视图,这也将是相当曲折的实现。
https://stackoverflow.com/questions/7464138
复制相似问题