我这样做是为了将数据添加到gridview
Dim dSource As New SqlDataSource
dSource.ConnectionString = MyConnectionString
dSource.SelectCommand = "select..."
GridView1.DataSource = dSource
GridView1.DataBind()
然后我想隐藏第一列
GridView1.columns(0).visible=false
并且服务器抛出异常:
ArgumentOutOfRangeException.
答案 0 :(得分:3)
GridView.Columns.Count
时, AutoGenerateColumns="true"
将为0。
您可以尝试明确声明列并设置AutoGenerateColumns="false"
,或者您可以尝试在代码隐藏中使用它:
GridView.Rows[0].Cells.Count
在数据绑定后获取列计数,或者:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[index].Visible = false;
}
使用GridView的RowDataBound事件将列设置为不可见。
您可以使用bound field
,如下所示
<asp:DataGrid ID="DefaultGrid" Runat="server" AutoGenerateColumns=False>
<Columns>
<asp:BoundColumn DataField="Index" HeaderText="Header">
</asp:BoundColumn>
</Columns>
</asp:DataGrid>
答案 1 :(得分:0)
您可以在数据绑定后隐藏网格视图列 使用此代码
protected void gridView_DataBound(object sender, EventArgs e)
{
if (someCondition == true)
{
// Hide the column
this.gridView.Columns[0].Visible = false;
}
}