C# 在要绑定到gridview的对象列表中隐藏其他属性

C# 在要绑定到gridview的对象列表中隐藏其他属性,c#,asp.net,list,gridview,C#,Asp.net,List,Gridview,我有一个具有许多属性的用户站点加载类型的对象列表,我想隐藏其中的一些属性,因为我不希望我的网格视图显示所有这些属性 我怎么做?我使用GridView.DataSource=mylistofuseristeloadObjects public partial class Create : System.Web.UI.Page { public List<Entity.UserSiteLoad> MyTempList = new List<Entity.UserSiteLo

我有一个具有许多属性的用户站点加载类型的对象列表,我想隐藏其中的一些属性,因为我不希望我的网格视图显示所有这些属性

我怎么做?我使用GridView.DataSource=mylistofuseristeloadObjects

public partial class Create : System.Web.UI.Page
{
    public List<Entity.UserSiteLoad> MyTempList = new List<Entity.UserSiteLoad>();
    public Entity.UserSiteLoad usl = new Entity.UserSiteLoad();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["MyApplianceList"] = MyTempList;  
        }


    }

    protected void BtnAddNext_Click(object sender, EventArgs e)
    {
        List<Entity.UserSiteLoad> LstUsl = (List<Entity.UserSiteLoad>)Session["MyApplianceList"];
        usl.Applianc = new Entity.Appliance();
        usl.Applianc.Name = DDLAppName.Text;
        usl.Quantity = Convert.ToInt32(QtyTB.Text);
        usl.DayTime = Convert.ToInt32(DayTymTB.Text);
        usl.BackUpTime = Convert.ToInt32(BackUpTymTB.Text);
        if (LstUsl.Count != 0)
        {
            for (int rowIndex = 0; rowIndex < LstUsl.Count; rowIndex++)
            {
                string AppName = LstUsl[rowIndex].Applianc.Name;
                if (AppName == DDLAppName.Text)
                {
                    LstUsl.Remove(LstUsl[rowIndex]);
                }

            }
        }
        if (LstUsl.Count == 0 || LstUsl.Count > 0)
        {
            LstUsl.Add(usl);
        }



        AllItems.DataSource = LstUsl;
        AllItems.DataBind();
        AllItems.Visible = true;
        Response.Write("It has: " + AllItems.Attributes.Count);


    }
}
public分部类创建:System.Web.UI.Page
{
public List mytemplast=new List();
public Entity.UserSiteLoad usl=new Entity.UserSiteLoad();
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
会话[“MyApplianceList”]=MyTempList;
}
}
受保护的无效BtnAddNext_单击(对象发送者,事件参数e)
{
List LstUsl=(List)会话[“MyApplianceList”];
usl.Appliance=new Entity.Appliance();
usl.Applianc.Name=DDLAppName.Text;
usl.Quantity=Convert.ToInt32(QtyTB.Text);
usl.day=Convert.ToInt32(daytmtb.Text);
usl.BackUpTime=Convert.ToInt32(BackUpTymTB.Text);
如果(LstUsl.Count!=0)
{
对于(int-rowIndex=0;rowIndex0)
{
LstUsl.Add(usl);
}
AllItems.DataSource=LstUsl;
AllItems.DataBind();
AllItems.Visible=true;
Write(“它有:“+AllItems.Attributes.Count”);
}
}
第二个问题:我想在我的GridView中添加一列名为的“设备名称”,并将其值设置为usl.Appliance.nameAppliance用户站点加载对象中的聚合对象


怎么可能呢?

您应该配置

显然,您应该并且可以将自己的集合绑定到
DataSource
属性

我认为您的代码可以保持原样,只需更改一些标记:

<asp:GridView ID="AllItems" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="PropA" HeaderText="Property A" />
        <asp:BoundField DataField="PropB" HeaderText="Property B" />
        <!-- ... -->
    </Columns>
</asp:GridView>


将AutogenerateColumns设置为false,并明确指定所有必须显示的列。谢谢。。我帮了大忙:)