Asp.net 在rutnime中添加数据时,如何隐藏gridview的列?
我这样做是为了向gridview添加数据Asp.net 在rutnime中添加数据时,如何隐藏gridview的列?,asp.net,vb.net,webforms,Asp.net,Vb.net,Webforms,我这样做是为了向gridview添加数据 Dim dSource As New SqlDataSource dSource.ConnectionString = MyConnectionString dSource.SelectCommand = "select..." GridView1.DataSource = dSource GridView1.DataBind() 然后我想隐藏第一列 GridView1.columns(0).visible=false 服务器会抛出一个异常: Ar
Dim dSource As New SqlDataSource
dSource.ConnectionString = MyConnectionString
dSource.SelectCommand = "select..."
GridView1.DataSource = dSource
GridView1.DataBind()
然后我想隐藏第一列
GridView1.columns(0).visible=false
服务器会抛出一个异常:
ArgumentOutOfRangeException.
当您在GridView中设置
AutoGenerateColumns=“true”
时,GridView.Columns.Count
将为0
您可以尝试显式声明列并设置AutoGenerateColumns=“false”
,也可以尝试在codebehind中使用此选项:
GridView.Rows[0]。Cells.Count
要在数据绑定后获取列计数,请执行以下操作:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[index].Visible = false;
}
使用GridView的RowDataBound事件将列设置为不可见
编辑1
您可以使用绑定字段
,如下所示
<asp:DataGrid ID="DefaultGrid" Runat="server" AutoGenerateColumns=False>
<Columns>
<asp:BoundColumn DataField="Index" HeaderText="Header">
</asp:BoundColumn>
</Columns>
</asp:DataGrid>
您可以在数据绑定后隐藏栅格视图列 通过使用此代码
protected void gridView_DataBound(object sender, EventArgs e)
{
if (someCondition == true)
{
// Hide the column
this.gridView.Columns[0].Visible = false;
}
}
在您的代码GridView1.columns(0)中,您在哪里执行此操作?visible=true?您在哪里执行databind(),在哪个事件中?
GridView1.columns[0]。visible=false
您应该放在方括号中。我在Page_Load()事件中执行此操作谢谢。如何向gridview添加列?