GridView,怎样在后台控制前台的一些列显示或者隐藏比如GridView前台绑定了三个列 分别为 “查看” “修改” “
GridView,怎样在后台控制前台的一些列显示或者隐藏
比如GridView前台绑定了三个列 分别为 “查看” “修改” “删除” 代码如下
C# code <asp:GridView ID="gv_OrderInfo" runat="server" OnSelectedIndexChanged="gv_OrderInfo_SelectedIndexChanged" AutoGenerateColumns="False" OnRowEditing="gv_OrderInfo_RowEditing" OnRowDeleting="gv_OrderInfo_RowDeleting" OnRowDataBound="gv_OrderInfo_RowDataBound1"> <Columns> <asp:ButtonField CommandName="Select" Text="查看" > <ControlStyle ForeColor="Blue" /> <ItemStyle Width="30px"></ItemStyle> </asp:ButtonField> <asp:ButtonField CommandName="Edit" Text="修改" > <ControlStyle ForeColor="Blue" /> <ItemStyle Width="30px"></ItemStyle> </asp:ButtonField> <asp:ButtonField CommandName="Delete" Text="删除" > <ItemStyle Width="30px"></ItemStyle> <ControlStyle ForeColor="Blue" /> </asp:ButtonField> </Columns> </asp:GridView>
我现在想在后台控制某一列进行隐藏,应该怎么做呢? 比如我控制将“修改”列隐藏 或者将“删除”列隐藏。
[解决办法]GridView1.Columns[1].Visible=false;//隐藏“修改”列
[解决办法]GridView1.Columns[1].Visible = false;
GridView1.Columns[2].Visible = false;
[解决办法]在其他事件,比如按钮事件中可以Gridview1.Columns[i].Visible = false
在RowDataBound 事件中 e.Columns[i].Visible = false
[解决办法]我更喜欢用Gridview1.Columns[i].Attributes["style"] = "display:none";这种写法,因为Visible=false,将不输出html,在客户端就无法变成visible。
[解决办法]给ItemStyle绑定个值
后台设置这个值
[解决办法]GridView1.Columns[1].Visible = false;
GridView1.Columns[2].Visible = false;
[解决办法]在rowDataBound事件里添加
if(e.Row.RowType==DataControlRowType.EmptyDataRow){ return; }//防止无数据下面代码错误
e.Row.Cells[0].Visible=false;//隐藏第一列 1第二列
if(e.Row.RowType==DataControlRowType.DataRow)
{
//这里可以修改数据,如:e.Row.Cells[0].Text=(Convert.ToInt32(e.Row.Cells[0].Text)/100).ToString();
}
if(e.Row.RowType==DataControlRowType.Footer)
{
//这里是修改gridview底部显示的
}
[解决办法]前面说得很清楚了.
用GridView列的Visible属性.
[解决办法][解决办法][解决办法][解决办法]GridView1.Columns[1].Visible=false;//隐藏第二列
GridView1.Columns[1].Visible=true;//显示第二列
[解决办法][解决办法]隐藏某行或列:
xx.Rows[索引].Visible = false;
xx.Columns[索引].Visible = false;
[解决办法]C# codeAsp.net2.0GridView隐藏列visible="false" 后你就无法取得这列的值了, 而用datagrid就没有这个问题 protected void GVList_RowDataBound(object sender, GridViewRowEventArgs e) { //隐藏不必要的列 if ((e.Row.RowType == DataControlRowType.DataRow) || (e.Row.RowType == DataControlRowType.Header) || (e.Row.RowType == DataControlRowType.Footer)) { e.Row.Cells[0].Visible = false; e.Row.Cells[3].Visible = false; } } 这是迄今为止最简洁的解决方法了。 实例:protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { //隐藏不必要的列 if ((e.Row.RowType == DataControlRowType.DataRow) || (e.Row.RowType == DataControlRowType.Header) || (e.Row.RowType == DataControlRowType.Footer)) { e.Row.Cells[3].Visible = false; e.Row.Cells[4].Visible = false; // e.Row.Cells[3]序号从0开始算 } }