Кнопка просмотра сетки данных повторяется - PullRequest
0 голосов
/ 12 ноября 2010

EXACT копия Кнопка просмотра таблицы данных повторить

Я добавил кнопку в представление таблицы данных, но когда функция вызывается более одного раза, добавляется новая кнопка, мне нужно остановить это добавление

  void AddtoGrid()
    {
        try
        {                
            table = new DataTable();
            bcol = new DataGridViewButtonColumn();
            bcol.HeaderText = "Action ";
            bcol.Text = "Delete";
            bcol.Name = "deleteUserButton";
            bcol.UseColumnTextForButtonValue = true;                

            table.Columns.Add("Name");
            table.Columns.Add("Type");
            table.Columns.Add("Status");
            table.Columns.Add("Date Created");


            for (int i = 0; i < userAction.UserName.ToArray().Length; i++)
            {
                row = table.NewRow();
                asc.Add(userAction.UserName[i]);
                row["Name"] = userAction.UserName[i];
                row["Type"] = userAction.UserType[i];
                row["Status"] = userAction.UserStatus[i];
                row["Date Created"] = userAction.DateCrea[i];
                table.Rows.Add(row);
            }

            UsersView.DataSource = table;
            UsersView.AllowUserToAddRows = false;//To remove extra row at the end
            UsersView.Columns.Add(bcol);
        }
        catch (Exception ca)
        {
            MessageBox.Show(ca.ToString());
        }
    }//End Function for Getting Present Users

1 Ответ

1 голос
/ 12 ноября 2010

Разделите метод на две части:

1.) Для настройки структуры сетки 2.) Добавить новые строки

public void SetupDataGridView()
{
            table = new DataTable();
            bcol = new DataGridViewButtonColumn();
            bcol.HeaderText = "Action ";
            bcol.Text = "Delete";
            bcol.Name = "deleteUserButton";
            bcol.UseColumnTextForButtonValue = true;                

            table.Columns.Add("Name");
            table.Columns.Add("Type");
            table.Columns.Add("Status");
            table.Columns.Add("Date Created");

            UsersView.DataSource = table;
            UsersView.AllowUserToAddRows = false;//To remove extra row at the end
            UsersView.Columns.Add(bcol);
}

public void PopulateDataGridView()
{

            for (int i = 0; i < userAction.UserName.ToArray().Length; i++)
            {
                row = table.NewRow();
                asc.Add(userAction.UserName[i]);
                row["Name"] = userAction.UserName[i];
                row["Type"] = userAction.UserType[i];
                row["Status"] = userAction.UserStatus[i];
                row["Date Created"] = userAction.DateCrea[i];
                table.Rows.Add(row);
            }

}

И это все еще неоптимальный подход, но это максимум, что любой может сделать для кого-то с вашими навыками.

Вам не хватает базовых знаний в области программирования и, в частности, объектно-ориентированного программирования. Получить книгу (например, Крис продает книгу по программированию оконных форм), прочитать ее, а затем вернуться. Вы выиграете от этого!

...