只选择了Gridview ASP.NET LINQ的列

时间:2016-04-16 14:09:08

标签: c# asp.net linq gridview

我的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。 提前谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

<强> 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">