仅将所选列添加到Gridview ASP.NET LINQ

本文关键字:Gridview ASP NET LINQ 添加 | 更新日期: 2024-09-22 15:46:32

我的WebForm中有一个GridView。我正在使用LINQ来设置数据源。我只想在GridView中显示表中选定的几列。

C#:

            var source = from s in imd.Students
                         where s.Dept_Id == 18 && s.Year == 1
                         select new { Name = s.Name };
            Marks.DataSource = source;
            Marks.DataBind();

HTML:

<asp:GridView ID="Marks" runat="server">
        <Columns>
            <asp:TemplateField HeaderText="Name">
                <ItemTemplate>
                    <asp:Label ID="Name" runat="server" Text='<%# Bind("Name") %>'/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Score">
                <ItemTemplate>
                    <asp:TextBox ID="Score" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

但是我在GridView中得到了两个Name列。我该怎么解决这个问题?我想要第一个Name列,然后是第二个列中的TextBox。提前感谢!

仅将所选列添加到Gridview ASP.NET LINQ

如果在标记中创建列,则可以关闭自动列创建:

<asp:GridView ... AutoGenerateColumns="false" >

C#

var source = from s in imd.Students
    where s.Dept_Id == 18 && s.Year == 1
    select new { Name = s.Name, Score = s.Score };

ASP.NET

<asp:GridView ID="Marks" runat="server" AutoGenerateColumns="false">