如何使用Linq-to-Entities在此GridView中正确检索数据?

时间:2013-12-19 18:45:09

标签: asp.net gridview linq-to-entities

我是一名新的ASP.NET开发人员,我正在尝试学习Linq-To-Entities。我有一个非常奇怪的问题。我的数据库中有以下两个表或实体:

Items Table: ID, Code, Name, StatusID
Status Table: ID, Name

我试图在GridView中查看项目的所有细节。例如,我只想在表格中显示两列,例如GridView中的Name和Code。我正在尝试开发一个通用的get数据方法,它将从表中检索所有细节。但是,我希望稍后指定要在GridView中显示的列。 这是我的方法:

public IEnumerable<Items> getData()
    {
        List<Items> itemsList = new List<Items>();
        using (ItemsDBEntities context = new ItemsDBEntities())
        {
            itemsList = (from item in context.Items
                        select new Items()
                        {
                            ID = item.ID,
                            Code = item.Code,
                            Name = item.Name
                        }).ToList();
        }
        return itemsList;
    }

我将GridView绑定到此方法。但如何在不更改方法的情况下指定要显示的两列而不是所有列?

1 个答案:

答案 0 :(得分:0)

AutoGenerateColumns = "false"的标记集GridView中使用TemplateField,如下所示:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns = "False">
    <Columns>
        <asp:TemplateField >
            <ItemTemplate>
                <%# DataBinder.Eval(Container, "DataItem.Id") %> 
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField >
            <ItemTemplate>
                <%# DataBinder.Eval(Container, "DataItem.Code") %>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>