2011-02-07 5 views
1

У меня есть файл журнала, который может содержать то же событие (проверка) несколько раз, то есть:Создание динамических элементов управления и привязки к набору данных

ID: 001 Проверка Результат:
Проверка Начало: 5:42 : 34
Окончание проверки: 07:12:52

Проверка Результат:
Проверка Начало: 12:38:01
Проверочный Конец: 14:05:12

У меня есть динамически созданные элементы управления (метка и TextBox или DateTimePicker), которые отображают эту информацию пользователю; то, что я хочу знать, как связать эти элементы управления для моего набора данных таким образом, что при записи в базу данных, каждая проверка новая строка, связанная с тем же ID, то есть:

UID | ID | Start | End 
1 | 001 | 05:42:34 | 07:12:52 
2 | 001 | 12:38:01 | 14:05:12 

Codewise: Я указываю программа - каталог журналов, которые отображаются в контрольном списке. На смену SelectedIndex, я называю ниже:

void ParseImagerLogs(string source) 
    { 
    int i = 0; 
    //Log fields are parsed to a key/value pair 
     if (key.Equals("LogID")) 
     { 
      logIdTextBox.Text = value 
     } 

     if (key.Equals("VerStarted")) 
     { 
      //Date format ddd MMM dd HH:mm:ss yyyy is parsed to a useable format and 
      //saved as timeStart 
      verStartedDateTimePicker.Value = verTimeStart; 
     } 

     if (key.Equals("VerEnded")) 
     { 
      //Same parsing technique 
      verEndedDateTimePicker.Value = verTimeEnd; 
      //Work out the elapsed time 
      verTime - timeEnd.Subtract(timeStart).ToString(); 
      //Pass the fields to a new method which dynamically generates the 
      GenerateVerificationFields(i, verStartedDateTimePicker.Value, verEndeDateTimePicker.Value, verTime.TextBox 
      //I have my first verification instance, so i++ and look for the next one. 
      i++; 
      } 
    } 

private void GenerateVerificationFields(int amount, DateTime verStartval, DateTime verEndval, string verTimeval) 
    { 

     int i = amount; 
     int j = i + 1; 
     //Create groupBox 
     GroupBox groupBox = new GroupBox(); 
     groupBox.Name = "verGroup" + i.ToString(); 
     groupBox.Width = 430; 
     groupBox.Height = 120; 
     groupBox.Left = 5; 
     groupBox.Top = 42 + (groupBox.Height * i) + (10 * i); 
     groupBox.Text = "Verification #" + j.ToString(); 

     //Create VerStart 
     DateTimePicker verStart = new DateTimePicker(); 
     verStart.Name = "verStart" + i.ToString(); 
     verStart.Width = 224; 
     verStart.Height = 22; 
     verStart.Location = new Point(160, 25); 
     verStart.DataBindings.Add(new Binding("Value", acqreports_testDataSet, "verification.VerStarted")); 
     verStart.Value = verStartval; 

     //Create VerEnded 
     DateTimePicker verEnd = new DateTimePicker(); 
     verEnd.Name = "verStart" + i.ToString(); 
     verEnd.Width = 224; 
     verEnd.Height = 22; 
     verEnd.Location = new Point(160, 55); 
     verEnd.DataBindings.Add(new Binding("Value", acqreports_testDataSet, "verification.VerEnded")); 
     verEnd.Value = verEndval; 

     //Create VerTime 
     TextBox verTime = new TextBox(); 
     verTime.Name = "verTime" + i.ToString(); 
     verTime.Width = 224; 
     verTime.Height = 22; 
     verTime.Location = new Point(160, 85); 
     verTime.Text = verTimeval; 

     //Create Ver Start label 
     Label lblVerStart = new Label(); 
     lblVerStart.Name = lblVerStart + i.ToString(); 
     lblVerStart.Text = "Ver Started: "; 
     lblVerStart.Location = new Point(5, 25); 

     //Create Ver End label 
     Label lblVerEnd = new Label(); 
     lblVerEnd.Name = lblVerEnd + i.ToString(); 
     lblVerEnd.Text = "Ver Ended: "; 
     lblVerEnd.Location = new Point(5, 55); 

     //Create Ver Time label 
     Label lblVerTime = new Label(); 
     lblVerTime.Name = lblVerTime + i.ToString(); 
     lblVerTime.Text = "Ver Time: "; 
     lblVerTime.Location = new Point(5, 85); 

     //Add created controls to groupBox 
     groupBox.Controls.Add(verStart); 
     groupBox.Controls.Add(verEnd); 
     groupBox.Controls.Add(verTime); 
     groupBox.Controls.Add(lblVerStart); 
     groupBox.Controls.Add(lblVerEnd); 
     groupBox.Controls.Add(lblVerTime); 
     tabControl2.TabPages[2].Controls.Add(groupBox); 
    } 

Затем я хочу использовать DateTimePickers и VerTime.Text обновить таблицу с каждым событием проверки.

+0

У меня есть некоторые идеи, но мне нужна дополнительная информация, я не понимаю, что вы делаете. Некоторый код был бы полезен – Luke

ответ

0

Вам необходимо построить объект Data точно в том виде, в котором вы указали в таблице. Затем вы можете привязать его к вашим элементам управления или набору данных.

Смежные вопросы