2012-03-23 4 views
1

Это, вероятно, простое решение, но я не могу обойти его.Подсчитайте количество динамически сгенерированных страниц

У меня есть страницы, которые динамически сгенерированы, и я рассчитываю страницы, которые должны быть сгенерированы с помощью оператора LINQ (например): (ЭТО ОБНОВЛЕННЫЙ КОД, чтобы показать, где вызывается questionCount и установлен ли _labelQuestionCount - это фрагмент из большого метода, который dynamicaly генерируемой все страницы и установить все элементы управления в динамических страниц)

using (DataClasses1DataContext db = new DataClasses1DataContext()) 
{ 
    int questionsCount = (from q in db.vw_Custom_SelectQuestionnaireQuestions   
    select q.tbl_QuestionnaireQuestion_Description).Count(); 
    _labelQuestionCount = questionsCount.ToString(); 
} 

    Label labelCount = new Label(); 
    labelCount.ForeColor = Color.Blue; 
    labelCount.Location = new System.Drawing.Point(35, 290); 
    labelCount.Size = new System.Drawing.Size(150, 30); 
    labelCount.Tag = _dataSetRadioButtons.Tables["tbl_QuestionnaireAnswer_Score"]; 
    labelCount.Text = String.Format("Question Count: {0}", _labelQuestionCount); 

Вот глобальная переменная:

string _labelQuestionCount; 

причина этого заключается в том, что я щелкаю через динамически созданных страниц, я хотел бы "посчитать «так, чтобы в моем событии« следующая кнопка »я узнал, что страница x - это моя последняя страница, и я могу перемещаться/выполнять другой код.

Текущий код следующей кнопки: (ОБНОВЛЕНО)

 void nextButton_Click(object sender, EventArgs e) 
    { 
     bool c = IsChecked(_form); 

     if (c == true) 
     { 
      var w = Convert.ToInt32(_labelQuestionCount); 
      _form.Dispose(); 
      w--; 

      if (w == 0) 
      { 
       //go to another page or do something else 
      } 
     } 
     else 
     { 
      MessageBox.Show("You must select at least one."); 
     } 
    } 

Как вы можете видеть, что я пытаюсь и значение из глобальной переменной (например, __labelQuestionCount) и попытаться посчитать его «вниз», пока не дойдете до 0 и сделать что-то еще.

Но, поскольку мои страницы генерируются динамически, я никогда не добраться до 0.

Это, вероятно, неправильный способ пойти об этом, так что если кто-то может предложить или помочь ему было бы весьма признателен.

С наилучшими пожеланиями, geoNeo

+0

Дружественное предложение, не используйте однобуквенные переменные, и нет необходимости проверять логическое значение для true. I.e., если вы напишете 'bool formIsChecked = IsChecked (_form); if (formIsChecked) {var labelCount = ... 'это более читаемо для вас и других. – Abel

+0

извините abel его просто тестовое приложение, но спасибо за предложение, запомните его для будущих сообщений :) –

ответ

1

вы должны переназначить уменьшенное значение (w--) на глобальную переменную _labelQuestionCount внутри следующего события нажатия кнопки. потому что, если вы нажмете дальше, _labelQuestionCount останется таким же для всех кликов.

+0

Hi Vetrivel please не могли бы вы рассказать о назначении уменьшенного значения - fanx: D –

0

Я бы подумать о назначении на Page некоторого int PageID, если нет какой-либо уже. И когда вы восстанавливаете соединение страниц с базы, вы не считаете их количество, но получаете PageID из последней доступной страницы сейчас.

На button_click вы спросите снова для последнего элемента в colleciton в момент щелчка (причиной может быть изменен, новые страницы были добавлены в colleciton), revoer его PageID, и проверить, если страница, которую вы swicthing имеет тот же идентификатор, если да, делайте то, что вам нужно.

+0

Привет, Тигран - спасибо за ответ, пытаюсь реализовать все предложения по мере ввода - fanx: D –

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