2011-06-22 24 views
0

我正在重組實踐項目以轉換爲n層和麪向對象,並且我遇到了一些障礙。我有7個產品,每個產品都有多個字段,提交的產品可能有0-7個產品(沒有冗餘實例)。我將所有產品的所有字段數據與相關提交標識存儲在列表中,這是提交對象內的嵌套對象。所有這一切說,我如何從這個列表中拉出特定的領域,並與他們加載我的網頁上的標籤?完整的db數據行列表;如何將字段加載到標籤?

示例:使用Id 109提交產品EPL,並且一個字段Coverage的值爲800.我希望標籤LblEplCov包含該值。下面的代碼。產品

數據層

SqlCommand FidCmd = new SqlCommand(FiduciaryQuery, conn); 
    SqlDataReader FidRead = new SqlDataReader(); 
    FidRead = FidCmd.ExecuteReader(); 

    Fiduciary TempFid = new Fiduciary(); 
    TempFid.Entity1 = FidRead.GetString(0); 
    TempFid.PrimEx1 = FidRead.GetInt32(1); 
    TempFid.Limit1 = FidRead.GetInt32(2); 
    TempFid.SIR1 = FidRead.GetInt32(3); 
    TempFid.Att1 = FidRead.GetInt32(4); 
    TempFid.Premium1 = FidRead.GetInt32(5); 
    TempFid.Sublim1 = FidRead.GetInt32(6); 

    TempProdList.Add(TempFid); 


    SqlCommand CrimeCmd = new SqlCommand(CrimeQuery, conn); 

    SqlDataReader dr = null; 
    List<Product> lstProduct = new List<Product>(); 

    dr = CrimeCmd.ExecuteReader(); 

    CrimeFidelity TempCrime = new CrimeFidelity(); 
    TempCrime.Entity1 = dr.GetString(0); 
    TempCrime.Employees1 = dr.GetInt32(1); 
    TempCrime.PrimEx1 = dr.GetInt32(2); 
    TempCrime.LimA1 = dr.GetInt32(3); 
    TempCrime.DedA1 = dr.GetInt32(4); 
    TempCrime.PremA1 = dr.GetInt32(5); 
    TempCrime.LimB1 = dr.GetInt32(6); 
    TempCrime.DedB1 = dr.GetInt32(7); 
    TempCrime.PremB1 = dr.GetInt32(8); 

    TempProdList.Add(TempCrime); 

    return TempProdList; 

業務層

public static class ProductService 
{ 
    public static List<Product> getProductById(string x) 
    { 
     return ProductDatabaseLayer.GetProductsById(x);  
    }  
} 

表示層

Submission sub = SubmissionService.getSubmissionByID(x); 
    Customer cust = CustomerService.getCustomerById(sub.CustomerId1.ToString()); 
    Broker bro = BrokerService.getBrokerById(sub.BrokerId1.ToString()); 
    sub.Products1 = ProductService.getProductById(sub.SubmissionId1.ToString()); 

//注意:我想我會使用if!null塊來確定產品是否附加到提交,但如果有更好的方法可以隨意提及它。

回答

1

這很難理解你的問題,但我認爲你正在尋找從數據源動態構建用戶界面的方法。

如果是這樣,請嘗試使用中繼器

<asp:Repeater ID="InfrastructureRepeater" runat="server"> 
      <ItemTemplate> 
      <asp:CheckBox ID="InfrastructureCheckbox" Text='<%#Eval("InfrastructureName") %>' 
     runat="server" />       
      </ItemTemplate> 
     </asp:Repeater> 

如。你將你的數據源綁定到中繼器並指定一個模板。您也可以在後面的代碼中訪問您的物品,例如:

foreach (RepeaterItem item in InfrastructureRepeater.Items) 
{ 
    CheckBox infrastructureCheckBox = item.FindControl("InfrastructureCheckBox") as CheckBox; 
//Do something here 
} 
相關問題