【问题标题】:Only selected columns to Gridview ASP.NET LINQ仅选择 Gridview ASP.NET LINQ 的列
【发布时间】:2016-08-08 11:49:34
【问题描述】:

我的 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 中有两个名称列。我该如何解决这个问题?我首先想要名称列,然后是第二列中的文本框。 提前致谢!

【问题讨论】:

  • HTML 是正确的..这里select new { Name = s.Name , Here select score as well }; 你没有选择分数

标签: c# asp.net linq gridview


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-29
      • 2012-11-28
      • 2021-10-20
      • 1970-01-01
      • 2010-11-23
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多