2012-10-20 83 views
1

ObjectDataSource控件不引用取決於參數的正確構造自動實現的屬性

我已經(縮小版)

private int m_Code; 
    private string m_FamCode; 
    private string m_LastName; 
    private string m_FirstName; 
    private string m_Init; 
    private DateTime chargeDate; 
    private string tranCode; 
    private decimal paidAmt; 
    private string description; 

然後我會爲每個

public int M_Code 
     { 
      get { return m_Code; } 
      set { m_Code = value; } 
     } 
的get \集

然後我有3個不同的構造函數,它們看起來像下面的構造函數,但是爲每個構造函數傳遞不同數量的屬性。

public BBNMemberDetails(DateTime cDate, string tCode, decimal pAmt, string desc) 
     { 
      this.chargeDate = cDate; 
      this.tranCode = tCode; 
      this.paidAmt = pAmt; 
      this.description = desc; 
     } 


public BBNMemberDetails(int m_Code, string m_FamCode, string m_LastName, string m_FirstName, string m_Init) 
    { 
     this.m_Code = m_Code; 
     this.m_FamCode = m_FamCode; 
     this.m_LastName = m_LastName; 
     this.m_FirstName = m_FirstName; 
     this.m_Init = m_Init; 
     this.m_Title = m_Title; 

}

默認構造函數

public BBNMemberDetails() { } 

出於某種原因,被引用的唯一構造函數是一個與我的所有屬性。沒有引用我想要獲取交易信息的構造函數。我使用了一個List引用存儲過程的sqldatareader來獲取這些值,然後在前端添加一個objectdatasource將它附加到gridview。但是我的gridview顯示了所有的屬性,而不是我想讓它在構造函數中顯示的那些屬性。

回答

3

當你調用構造函數時,你會得到一個完整的對象。

該對象不會因爲您調用初始化較少成員的構造函數而減少。

+0

要跟蹤答案,您可以通過顯式設置標記中的列並在gridview中設置AutoGenerateColumns =「false」來修剪顯示的屬性。 – Tim

+0

所以對於每一組屬性,我應該創建一個新類是正確的方法來處理這個問題? – Tim

+0

看着你的變量看來你需要一個成員類和一個事務類。你不會在一個線程中學習OOP設計,你需要研究一下。順便說一句 - 你不應該發佈多個相同的問題。 –