Подсчитайте количество динамически генерируемых страниц - PullRequest
1 голос
/ 23 марта 2012

Это, вероятно, простое решение, но я не могу обойти его.

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

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 - это моя последняя страница, и я могу перемещаться / сделать другой код

Текущий код следующей кнопки: (UPdated)

        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. 0. 1017 *

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

С уважением, geoNeo

Ответы [ 2 ]

1 голос
/ 23 марта 2012

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

0 голосов
/ 23 марта 2012

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

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

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