隐藏网格视图中的一组列,其数据源是自定义类

时间:2013-07-24 16:32:40

标签: c# asp.net gridview

我有自定义类,其中包含10个属性。我必须在网格视图中只显示其中的五列作为列。 到目前为止,我试过这个:

gridView1.DataSource = reservation; // This is a List of ReservationDomain (Custom Class with the properties I want to populate in the gridview)
gridView1.DataBind();
gridView1.Columns[2].Visible = false; // At this point of time the Columns count is ZERO, so an exception is thrown.

这样做的方法是什么。 我搜索过,但是我可以通过LINQ找到相同的方式,LINQ内部也在做同样的事情。

2 个答案:

答案 0 :(得分:1)

您需要Browsable(false)属性

public class MyClass
{
    [Browsable(false)]
    public int MyProperty {get;set;}//property you don't want to show
}

您需要在自定义类的属性中设置它 我认为在你的情况下你需要在ReservationDomain

中设置它

修改

    GridView1.RowCreated -= GridView1_RowCreated;
    GridView1.RowCreated += GridView1_RowCreated;

    void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[1].Visible = false;
    }

希望这有帮助

答案 1 :(得分:1)

<asp:GridView ID="gvUserInfo" runat="server" >
<Columns>
<asp:BoundField DataField="Column1" HeaderText="Column1" Visible="False" />
<asp:BoundField DataField="Column2" HeaderText="Column2" />
</Columns>
</asp:GridView>