Динамический флажок - PullRequest
       13

Динамический флажок

0 голосов
/ 06 января 2011

В настоящее время я создаю систему динамических вкладок URL, чтобы пользователь мог сказать, какие URL он хочет отобразить на элементе управления вкладкой.

В базе данных у меня есть следующие столбцы.

userID, int URLName var Enabled bit

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

Я написал следующие методы для получения URL-адресов и создания флажков, однако я продолжаю получать следующую ошибку.

ex = {"InvalidArgument = Значение '1' недопустимо для'index'. \ r \ nParameter name: index "}

Он читает первую строку нормально, но когда он достигает 2-й строки, которая возвращается, я получаю эту ошибку.

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

Спасибо

private void GetUserURLS()
    {

        db.initiateCommand("[Settings].[LoadAllUserURLS]", CommandType.StoredProcedure);

        sqlp = db.addParameter("@UserID", _UserID, SqlDbType.Int, ParameterDirection.Input);
        sqlp = db.addParameter("@spErrorID", DBNull.Value, SqlDbType.Int, ParameterDirection.InputOutput);

        db.executeCommand();

        CreateCheckBoxes(db.getTable(0).Rows);
        db.releaseCommand();
    }


    private void CreateCheckBoxes(DataRowCollection rows)
    {
        try
        {
            int i = 0;
            foreach (DataRow row in rows)
            {
                //Gets the url name and path when the status is enabled. The status of Enabled / Disabled is setup in the users option page
                string URLName = row["URLName"].ToString();
                bool enabled = Convert.ToBoolean(row["Enabled"]);

                CheckedListBox CB = new CheckedListBox();              
                CB.Items.Insert(i, URLName);

                CB.Tag = "CB" + i.ToString();

                checkedListBox1.Items.Add(CB);

                i++;
            }
        }

        catch (Exception ex)
        {
            //Log error
            Functionality func = new Functionality();
            func.LogError(ex);

            //Error message the user will see
            string FriendlyError = "There has been populating checkboxes with the urls - A notification has been sent to development";
            Classes.ShowMessageBox.MsgBox(FriendlyError, "There has been an Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

1 Ответ

3 голосов
/ 06 января 2011

Вы не должны добавлять CheckedListBox как элемент в CheckedListBox. Попробуйте вместо этого просто добавить строку URLName, т.е.

            string URLName = row["URLName"].ToString();
            bool enabled = Convert.ToBoolean(row["Enabled"]);

            checkedListBox1.Items.Add(URLName, enabled);

Я думаю это то, чего вы пытаетесь достичь.

...