2016-04-16 61 views
1

我在我的WebForm中有一個GridView。我正在使用LINQ來設置數據源。我只想在表格中顯示幾個選定的列。只有選定的列到Gridview ASP.NET LINQ

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中獲得兩個名稱列。我怎麼能解決這個問題?我先要命名列,然後是第二列的文本框。 在此先感謝!

+0

'HTML'側是正確的..在這裏'選擇新的{名稱= s.Name,這裏也選擇分數};'你不是s選舉得分 –

回答

2

如果您在標記創建列,您可以關閉自動創建列:

<asp:GridView ... AutoGenerateColumns="false" > 
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">