有网友在论坛问及怎样隐藏或显示GridView控件的列。下面是Insus.NET实作方法,可供参考。

GridView资料, 首先来看看实现后的结果:


隐藏或显示GridView控件列_DataTextField


Insus.NET把GridView第一列设置好不能隐藏,其余2至4列的索引为1至3。在GridView控件上方,放一个DropDownList和两件铵钮:

隐藏或显示GridView控件列_Column_02

在.aspx.cs上两个铵钮的Click事件:

隐藏或显示GridView控件列_DataTextField_03

 

写得不好,代码有冗余,因此改为:

隐藏或显示GridView控件列_GridView_04

 

 

 Ok, Insus.NET在接下来的演示中,使用另外一种方法来实现,让你能有更多的参考,首先想办法去获取GridView的列索引和列名,是的,是获取列名。并把它们存储起来,然后分别绑至两个DropDownList控件内。这样不需要使用两个按钮。如:

隐藏或显示GridView控件列_RadioButtonList_05


 下面是获取Gridview的列索引和列名:


隐藏或显示GridView控件列_GridView_06隐藏或显示GridView控件列_RadioButtonList_07View Code


private Dictionary<int, string> GetGridViewColumnInfo()
{
Dictionary<int, string> dic = new Dictionary<int, string>();

for (int i = 0; i < GridViewMember.Rows[1].Cells.Count; i++)
{
var header = (GridViewRow)GridViewMember.Controls[0].Controls[0];
dic.Add(i, header.Cells[i].Text.Replace("\r\n", "").Trim());
}

return dic;
}


 

把数据绑定至两个DropDownList控件去:

隐藏或显示GridView控件列_Column_08

 

然后是处理RadioButtonList的结果,把所选择的值转为bool值:


隐藏或显示GridView控件列_GridView_06隐藏或显示GridView控件列_RadioButtonList_07View Code


bool rtn;
private bool Show()
{
switch (this.RadioButtonList1.SelectedItem.Value)
{
case "0":
rtn = false;
break;
case "1":
rtn = true;
break;
}
return rtn;
}


下面是处理两个下拉菜单选择变化事件:

隐藏或显示GridView控件列_DataTextField_11

 

再来看看运行的效果:

隐藏或显示GridView控件列_DropDownList_12