Удалить столбец из GridView, если он существует - PullRequest
0 голосов
/ 05 июля 2019

Привет всем .У меня есть Gridview с 3 различными источниками данных (это зависит от выбора в выпадающем списке), который показывает данные из базы данных (поэтому autogeneratecolumns = true).

Я добавляю столбец (на стороне клиента). Если источником данных является '1' (например), с кнопкой НО из-за обратной передачи, каждый раз, когда я выбираю этот источник, он добавляет другую кнопку, и я хочу показать его только вcase '1'.

Я попробовал это решение : если я выбрал '2' или '3', столбец с кнопкой должен быть удален (также потому, что он не должен появляться в этих видах сетки) и если я снова выберу «1», он появится снова.Проблема в том, что он не вводит событие удаления «если кнопка существует» (см. 2-й код ниже)

        ButtonField b = new ButtonField();

        protected void addButton(){//This is how I show button-column in case'1'
            b.Text = "Modifica";
            b.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
            b.CommandName = "btnMod";
            b.ButtonType = ButtonType.Button;
            GridView1.Columns.Add(b);}
        protected void deleteButton(){//How I try to remouve it but it never=true even if the column with the buttons exists.
if (GridView1.Columns.Contains((ButtonField)b))
                {GridView1.Columns.Remove(b);}
protected void Page_Load(object sender, EventArgs e) //Pageload to manage gridview (DropDownList is Autopostback)
        {
            if (IsPostBack == true)
            {
                if (drpdwnlist.SelectedValue == "DSPostiocc")
                {addButton();}
                    else
                    { deleteButton();}
                GridView1.AutoGenerateColumns = true;
                GridView1.DataSourceID = drpScelta.SelectedValue;}}

Gif, чтобы лучше понять: https://imgflip.com/gif/34zdo7 (посмотритев раскрывающемся списке)

...