[英]How to access ForeignKey values in GridView using LinqDataSource?
问题如下:
我在数据库中有三个表:
包含ID_Article,标题等字段以及FK ID_Author的ARTICLE
类别ID为ID_Category,名称的CATEGORY
类别为ID_Article,ID_Category的CATEGORYTOARTICLE
现在,我有一个页面显示给定类别的所有文章。 里面有一个GridView。
<asp:GridView ID="GridViewCategories" runat="server"
AutoGenerateColumns="False" DataSourceID="LinqSourceGridCategories" >
<Columns>
<asp:TemplateField>
<HeaderTemplate>Title</HeaderTemplate>
<ItemTemplate>
???
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
加上LinqDataSource
<asp:LinqDataSource ID="LinqSourceGridCategories" runat="server"
ContextTypeName="konserwatyzm.db.DataClassesDataContext" EntityTypeName=""
TableName="CategoryToArticles" Where="ID_Category == @ID_Category">
<WhereParameters>
<asp:QueryStringParameter Name="ID_Category" QueryStringField="id"
Type="Int32" />
</WhereParameters>
</asp:LinqDataSource>
通过QueryString传递查看的类别的ID。
如何访问Article表的字段,以便可以在GridView中为其创建列? 我尝试使用Eval(“ Article.Title”),但一直说“ DataBinding:'konserwatyzm.db.CategoryToArticle'不包含名称为'Article'的属性。”
谢谢!
确保在dbml或映射中正确定义了密钥。 然后尝试通过linqdatasource配置向导选择要作为行的所有表来构造查询。 看起来您仅在需要时选择了CategoryToArticles表+另外两个。 您将能够以这种方式引用其他表中的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.