我有20个decimal
字段和20个string
字段中的另一个的数据类。我从SQL调用中填充这两个类,然后使用这些值来填充网页上的标签。
public class MyDecimals
{
public decimal MyDecimal1 { get; set; }
public decimal MyDecimal2 { get; set; }
public decimal MyDecimal3 { get; set; }
public decimal MyDecimal4 { get; set; }
public decimal MyDecimal5 { get; set; }
public decimal MyDecimal6 { get; set; }
.
.
public decimal MyDecimal20 { get; set; }
}
和
public class MyDecimalsNames
{
public string MyDecimal1Name { get; set; }
public string MyDecimal2Name { get; set; }
public string MyDecimal3Name { get; set; }
public string MyDecimal4Name { get; set; }
public string MyDecimal5Name { get; set; }
public string MyDecimal6Name { get; set; }
.
.
public string MyDecimal20Name { get; set; }
}
在aspx
页面上,标签的名称类似于lblMyDecimal1
,lblMyDecimal1Name
,lblMyDecimal2
,lblMyDecimal2Name
.....
而不是像这样逐行编码标签值......
lblMyDecimal1.Text = myClass.MyDecimal1.ToString("#,##0");
lblMyDecimal1Name.Text = myNamesClass.MyDecimal1Name;
lblMyDecimal2.Text = myClass.MyDecimal2.ToString("#,##0");
lblMyDecimal2Name.Text = myNamesClass.MyDecimal2Name;
我试图遍历类中的字段并根据字段名称分配标签值:
foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(myClass))
{
((Label)FindControl("lbl" + prop.Name)).Text = prop.GetValue(myClass).ToString("#,##0");
}
foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(myNameClass))
{
((Label)FindControl("lbl" + prop.Name)).Text = prop.GetValue(myNameClass) + "";
}
这可以按照我想要的方式工作,但是目前我只有标签1 - 12,13 - 20在这个特定页面上没有使用。
所以我的问题是:跳过页面上没有的字段/标签的最佳方法是什么?
我知道我可以创建一个排除列表并测试不在列表中的每个值,但我想在此之前将它们排除在外,如果可能的话,它们首先不在类中。
答案 0 :(得分:3)