У меня есть класс данных 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 не используются на этой странице.
Так что мой вопрос: что для меня лучше всего пропускать поля/метки, которых нет на странице?
Я знаю, что могу создать список исключений и проверить каждое значение для не в списке, но я хотел бы исключить их до этого, как если бы они не были в классе, если это было возможно.
Если они в классе, они находятся в классе. Лучше всего использовать пользовательский атрибут, чтобы исключить их или изменить код для проверки индекса. – artm