Прямо сейчас я вижу два пути, может быть, даже больше.
1) С кодом позади
<asp:Literal ID="RoleName" runat="server" Text='<%# GetRoleName(Eval("RoleId")) %>'/>
Для этого потребуется защищенный метод GetRoleName(object roleId)
в коде страницы за классом.
2) Без кода
Я предполагаю, что объекты Role
и все объекты, на которые они ссылаются, оба объявлены в контексте Linq. Если это так, Linq может (и даже делает это по умолчанию) генерировать свойства для ссылочных объектов. То есть, когда у вас есть таблица с FK до Role
, соответствующий объект будет иметь свойства RoleID
и Role
. Поэтому все можно сделать декларативно:
<asp:Literal ID="RoleName" runat="server" Text='<%# Eval("Role.Name") %>'/>