即使是SqlDataSource1.DataBind(),GridView1.Columns.Count也始终为零;
但网格还可以
我可以
for (int i = 0; i < GridView1.HeaderRow.Cells.Count;i++)
Run Code Online (Sandbox Code Playgroud)
我在这里重命名请求标题但是
GridView1.Columns[i].Visible = false;
Run Code Online (Sandbox Code Playgroud)
由于GridView1.Columns.Count为0,我无法使用它.
那么我怎么能隐藏它们呢?
Jan*_*oom 47
尝试将e.Row.Cells[0].Visible = false;内部RowCreated事件放入网格中.
protected void bla_RowCreated(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = false; // hides the first column
}
Run Code Online (Sandbox Code Playgroud)
这样它就会自动隐藏整个列.
您无法访问grid.Columns[i]gridview的DataBound事件中的生成列.
Ste*_*ert 11
仅当AutoGenerateColumns = false时才会填充Columns集合,并且您自己手动生成列.
一个很好的解决方法是在设置DataSource属性并调用DataBind()之前自己动态填充Columns集合.
我有一个函数,根据我想要显示的DataTable的内容手动添加列.一旦我完成了(然后设置DataSource并调用了DataBind(),我可以使用Columns集合并且Count值是正确的,并且我可以按照我最初的想法打开和关闭列可见性.
static void AddColumnsToGridView(GridView gv, DataTable table)
{
foreach (DataColumn column in table.Columns)
{
BoundField field = new BoundField();
field.DataField = column.ColumnName;
field.HeaderText = column.ColumnName;
gv.Columns.Add(field);
}
}
Run Code Online (Sandbox Code Playgroud)
Eil*_*lon 10
注意:此解决方案仅在您的GridView列提前知道时才有效.
听起来你正在使用GridViewwith AutoGenerateColumns=true,这是默认设置.我建议AutoGenerateColumns=false手动设置和添加列:
<asp:GridView runat="server" ID="MyGridView"
AutoGenerateColumns="false" DataSourceID="MySqlDataSource">
<Columns>
<asp:BoundField DataField="Column1" />
<asp:BoundField DataField="Column2" />
<asp:BoundField DataField="Column3" />
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
并且只包含BoundField要显示的每个字段的a .这将为您提供数据显示方式的最大灵活性.
小智 5
我遇到了同样的问题 - 需要我的GridView控件的AutogenerateColumns为'true',因为它被SQL数据源绑定,因此我需要隐藏一些不能在GridView控件中显示的列.
实现这一目标的方法是在GridView的'_RowDataBound'事件中添加一些代码,例如这个(让我们假设您的GridView的ID是''MyGridView'):
protected void MyGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[<index_of_cell>].Visible = false;
}
}
Run Code Online (Sandbox Code Playgroud)
那就行了就好了;-)
| 归档时间: |
|
| 查看次数: |
124433 次 |
| 最近记录: |