2014-01-31 26 views
0

我有一個類型爲的對象列表用戶網站加載有很多屬性,我想隱藏一些這些屬性,因爲我不想要我的網格查看以顯示所有這些。在綁定到gridview的對象列表中隱藏附加屬性

我該怎麼辦?我使用GridView.DataSource = MyListOfUserSiteLoadObjects;

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); 


    } 
} 

第二個問題:我想將列添加到我的GridView控件命名「設備名稱」並將其值設置爲usl.Applianc.NameApplianc爲聚合內部對象用戶網站加載對象

這怎麼可能?

+0

設置的AutoGenerateColumns爲false,並明確指定必須顯示的所有列。 – MrFox

回答

2

您應該將<asp:GridView />元素的AutoGenerateColumns屬性配置爲false並手動配置/綁定列。

以下堆棧會給你如何做到這一點的想法:

Manually binding data to Gridview

很明顯,你應該也能夠自己的集合綁定到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> 
+0

謝謝..是一個很好的幫助:) –