Как удалить столбцы из ArrayList или GridView c # - PullRequest
0 голосов
/ 29 мая 2018

Есть ли способ удалить "столбцы" из ArrayList?

Я запустил и запустил этот сайт, прежде чем пытаться заполнить свои DropDownLists из текстовых файлов, поэтому я жестко набрал каждое значение. Теперь я создал ArrayList из каждого DropDownList, чтобы я мог отображать эти списки в DataGridView насайт.Единственная проблема заключается в том, что «Enabled» и «Selected» отображаются в виде столбцов, и я не могу удалить столбец в ArrayList или указать, какие столбцы следует вводить при создании ArrayList, или GridView с помощью GridView.Columns.Remove ();потому что целые числа 0 или 1 или 2, кажется, не соответствуют ни с чем, и сайт не работает, и я не могу указать строку в качестве заголовка столбца для того, что нужно удалить.

Отображаются DataGridsс столбцами как | Включено | Выбрано | Текст | Значение |

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

        // Create ListArrays from DropDownLists
        ArrayList BuildingList = new ArrayList(Building.Items);
        ArrayList DepartmentList = new ArrayList(Department.Items);
        //Building.Items.Remove("Enabled");
        //Building.Items.Remove("Selected");

        // Populate Building GridView
        BuildingGrid.DataSource = BuildingList;
        BuildingGrid.DataBind();
        //BuildingGrid.Columns.Remove;
        //BuildingGrid.Columns[0].Visible = false;

        // Populate Department GridView
        DepartmentGrid.DataSource = DepartmentList;
        DepartmentGrid.DataBind();
        //DepartmentGrid.Columns[0].Visible = false;
        //DepartmentGrid.Columns[1].Visible = false;

Я бы просто пошел вперед и создал простой 2d массив в текстовом файле споля для «Значение» и «Текст», так что DropDownList правильно его вытянет, но я не могу понять это, не будучи ужасно неэффективным и запутанным.

Любая помощь будет принята с благодарностью.Благодаря.

1 Ответ

0 голосов
/ 07 октября 2018

Итак, вот решение, в котором я остановился.Я наконец-то понял, как извлечь все из txt-файла и поместить его в сетку так, как я хотел.

        // Populate Department GridView
        // get all lines of csv file
        string[] BuildingString = File.ReadAllLines(Server.MapPath("Content/BuildingsCSV.csv"));
        string[] DepartmentString = File.ReadAllLines(Server.MapPath("Content/DepartmentsCSV.csv"));
        // create new datatable
        DataTable BuildingTable = new DataTable();
        DataTable DepartmentTable = new DataTable();

        // Building Table
        // get the column header means first line
        string[] tempbuild = BuildingString[0].Split(',');
        // creates columns of gridview as per the header name
        foreach (string t in tempbuild)
        {
            BuildingTable.Columns.Add(t, typeof(string));
        }
        // now retrive the record from second line and add it to datatable
        for (int i = 1; i < BuildingString.Length; i++)
        {
            string[] t = BuildingString[i].Split(',');
            BuildingTable.Rows.Add(t);
        }
        // Department Table
        // get the column header means first line
        string[] tempdept = DepartmentString[0].Split(',');
        // creates columns of gridview as per the header name
        foreach (string t in tempdept)
        {
            DepartmentTable.Columns.Add(t, typeof(string));
        }
        // now retrive the record from second line and add it to datatable
        for (int i = 1; i < DepartmentString.Length; i++)
        {
            string[] t = DepartmentString[i].Split(',');
            DepartmentTable.Rows.Add(t);
        }
        // assign gridview datasource property by datatable
        BuildingGrid.DataSource = BuildingTable;
        BuildingGrid.DataBind();
        BuildingGrid.Rows[0].Visible = false;
        DepartmentGrid.DataSource = DepartmentTable;
        DepartmentGrid.DataBind();
        DepartmentGrid.Rows[0].Visible = false;

        foreach (DataRow drb in BuildingTable.Rows)
        {
            BuildingDrop.Items.Add(new ListItem(drb[0].ToString(), drb[1].ToString()));
        }
        foreach (DataRow drd in DepartmentTable.Rows)
        {
            DepartmentDrop.Items.Add(new ListItem(drd[0].ToString(), drd[1].ToString()));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...