大家好。我有一个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(请查看下拉列表)