从GridView中删除列(如果存在)

时间:2019-07-05 10:13:35

标签: c# asp.net gridview dynamic aspxgridview

大家好。我有一个Gridview,其中包含3个不同的数据源(取决于一个下拉列表),它显示数据库中的数据(所以autogeneratecolumns = true)。

我添加一列(客户端),如果数据源为“ 1”(例如),并且由于每次回发而具有按钮BUT,则每次选择该源时都会添加另一个按钮,并且仅在情况为“ 1”时才显示该按钮'。

我尝试过此解决方案:如果我选择“ 2”或“ 3”,则必须删除带有按钮的列(也是因为它不能出现在那些gridview中),并且如果我重新选择“ 1”再次出现。问题是它没有输入“如果按钮存在”的删除事件(请参见下面的第二代码)

        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(请查看下拉列表)

0 个答案:

没有答案