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