我有一个绑定到linqdatasource的Gridview。 gridview有一个FK。我想显示名称/文本字段,而不是此列的键字段。
我在我的ASP.NET页面中创建了一个方法,基本上是GetLookupForKey,它在提供密钥时返回字符串。但是,我不知道如何发送数据声明中特定行的列数据。
这应该说清楚:
<asp:TemplateField> <ItemTemplate> <asp:Literal ID="RoleName" runat="server" Text='<%#
GetRoleName( *我需要在此处发送RoleId * )%&gt;' /&GT;
RoleId既是boundfield又是DataKeyName。如何将RoleId发送到我的方法?另外,如何在不使用任何代码隐藏的情况下实现这一目标?
由于
答案 0 :(得分:1)
我现在可以看到两种方式,也许还有更多方法。
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") %>'/>