2016-04-16 7 views
1

У меня есть GridView в моем WebForm. Я использую LINQ для установки источника данных. Я хочу, чтобы в GridView отображалось только несколько выделенных столбцов в таблице.Только выделенные столбцы для 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' стороне правильно ... и здесь 'select new {Name = 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"> 
Смежные вопросы