C # - назначить значения для элементов управления мысли - PullRequest
1 голос
/ 28 января 2012

У меня есть элементы управления, которые названы в числовой последовательности. Я хотел бы назначить значения этих элементов управления с помощью цикла. Код ниже - это способ, которым я сейчас пользуюсь.

txtSalesInvoiceForm_Qty1.Text = (salesInvoice.ItemQty1 == 0) ? string.Empty : salesInvoice.ItemQty1.ToString();
txtSalesInvoiceForm_Qty2.Text = (salesInvoice.ItemQty2 == 0) ? string.Empty : salesInvoice.ItemQty2.ToString();
txtSalesInvoiceForm_Qty3.Text = (salesInvoice.ItemQty3 == 0) ? string.Empty : salesInvoice.ItemQty3.ToString();
txtSalesInvoiceForm_Qty4.Text = (salesInvoice.ItemQty4 == 0) ? string.Empty : salesInvoice.ItemQty4.ToString();
txtSalesInvoiceForm_Qty5.Text = (salesInvoice.ItemQty5 == 0) ? string.Empty : salesInvoice.ItemQty5.ToString();
txtSalesInvoiceForm_Unit1.Text = salesInvoice.Unit1;
txtSalesInvoiceForm_Unit2.Text = salesInvoice.Unit2;
txtSalesInvoiceForm_Unit3.Text = salesInvoice.Unit3;
txtSalesInvoiceForm_Unit4.Text = salesInvoice.Unit4;
txtSalesInvoiceForm_Unit5.Text = salesInvoice.Unit5;
txtSalesInvoiceForm_Particulars1.Text = salesInvoice.Particulars1;
txtSalesInvoiceForm_Particulars2.Text = salesInvoice.Particulars2;
txtSalesInvoiceForm_Particulars3.Text = salesInvoice.Particulars3;
txtSalesInvoiceForm_Particulars4.Text = salesInvoice.Particulars4;
txtSalesInvoiceForm_Particulars5.Text = salesInvoice.Particulars5;

Есть ли что-нибудь подобное?

int index = 1;
foreach (SalesInvoiceItem item in salesInvoice.SalesInvoiceItems)
{
    (txtSalesInvoiceForm_Qty + index.ToString()).Text = Value;
    indexer++                        
}

Ответы [ 2 ]

3 голосов
/ 28 января 2012
Control parent = this.pnlParent; // this must be the immediate parent control

int index = 1;
foreach (SalesInvoiceItem item in salesInvoice.SalesInvoiceItems)
{
    TextBox tb = parent.FindControl( "txtSalesInvoiceForm_Qty" + index++ ) as TextBox;
    tb.Text = Value;       
}

Ключ - FindControl(), который ищет непосредственных потомков родителя. Лично я думаю, что в большинстве случаев это неаккуратный код.

2 голосов
/ 28 января 2012

Используйте массив, а не столько именованных переменных, и просто внесите в индекс индекс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...