代码之家  ›  专栏  ›  技术社区  ›  Dynde

将用户角色绑定到下拉列表?

  •  0
  • Dynde  · 技术社区  · 16 年前

    我正在尝试将选定用户的角色绑定到下拉列表。 这样做的目的是能够改变所述用户的角色。

    aspnet_User table .

    下拉列表连接到中所有角色的linqdatasource aspnet_Roles table (with DataValueField="RoleID", DataTextField="RoleName") .

    SelectedValue='<%# Bind("aspnet_UsersInRole[0].aspnet_Role.RoleID") %>'
    

    但是这会引发一个解析器异常,关于绑定调用的格式不正确。

    角色在那里,当我移除 SelectedValue

    有人能给我指出正确的方向吗?

    2 回复  |  直到 10 年前
        1
  •  0
  •   Brian Mains    16 年前

    如果要将aspnet\u roles表绑定到下拉列表,那么为什么代码示例使用aspnet\u usersinrole?相反,如果要绑定到aspnet\u role对象,请执行以下操作:

    SelectedValue='<%# Bind("RoleID") %>'
    

    相反;这将连接到正确的财产。如果您想绑定aspnet\u usersinrole,如果可能的话,在LINQDataSource中,从结果aspnet\u usersinrole执行select操作来选择aspnet\u role对象。

        2
  •  0
  •   Dynde    16 年前

    解决了-我在codebhind中创建了一个方法,返回roleID,如下所示:

    public Guid GetRoleID(Guid userID) {
        DBDataContext db = new DBDataContext();
        aspnet_User user = db.aspnet_Users.SingleOrDefault(o => o.UserId == userID);
        return user.aspnet_UsersInRoles[0].aspnet_Role.RoleId;
    }
    

    然后在标记中执行以下操作:

     SelectedValue='<%# GetRoleID((Guid)Eval("UserID")) %>'
    
    推荐文章