改变网格视图细节



我有一个具有角色id和用户id的表,以及具有角色id和用户id的gridview,而不是显示id,我希望它显示用户名和角色。请问我该怎么换呢?提前感谢

如果你正在使用实体框架,你可以为你的实体创建一个部分类,显示你的用户名和角色。

public partial class EntityUserRole
{
    public string UserName
    {
        get { return User!= null ? User.Name: ""; }
    }
    public string RoleName
    {
        get { return Role!= null ? Role.Name: ""; }
    }
}

我假设ID是具有该名称和角色的其他表的外键。在SQL中,需要将这些表连接到网格中显示的表。我使用LEFT OUTER JOINS

因此(一般情况下)您将得到如下内容:

SELECT
 t.*
,u.UserName
,r.RoleName
FROM MyTable t
LEFT OUTER JOIN myRoleMasterTable r on r.Id = t.RoleId
LEFT OUTER JOIN myUserMasterTable u on u.Id = t.UserId

您的表必须是这样的…

tbl_user:

userid | username | xyz

   100   | Jack        | blah
   101   | Matt        | blahh

tbl_role

fk_userid | roleid | role

 101       |  1      | doctor    
 102       |  2      | nurse 

查询:

SELECT tbl_user.name, tbl_role.role FROM tbl_user.userid inner join tbl_role 
ON tbl_user.userid = tbl_role.fk_userid 

在你的数据表或数据集的任何你正在使用,然后绑定你的GridView与它像这样…

GridView1.DataSource = dt ;
GridView1.DataBind();

有不懂的尽管问。

最新更新