如何使gridview列动态显示true或false?

Rag*_*era 5 c# asp.net gridview

我在asp.net中使用GridView,如下所示:

    mygrid.DataSource = dTable;       
    mygrid.DataBind();

    if (mygrid.Columns.Count > 1)
    {
        mygrid.Columns[2].Visible = false;
    } 
Run Code Online (Sandbox Code Playgroud)

我的网格视图代码如下

    <asp:GridView ID="mygrid" runat="server" AllowPaging="True" 
       onpageindexchanging="mygrid_PageIndexChanging" PageSize="15" 
       PersistedSelection="true"  
       ondatabound="mygrid_DataBound">
       <Columns>
           <asp:TemplateField>
           <ItemTemplate>
           <asp:HyperLink ID="Edit" runat="server" Text="Edit" NavigateUrl='<%# Eval("Value", "~/myweppage.aspx?Id=M{0}") %>' />
           </ItemTemplate>
           </asp:TemplateField> 
       </Columns>           
       <PagerSettings PageButtonCount="4" />


   </asp:GridView>
Run Code Online (Sandbox Code Playgroud)

在这里,我无法设置visible=false.

我尝试了以下答案

如何动态隐藏多个gridview列?

我没有datarow在Visual Studio 2010中找到事件.任何人都可以帮我设置列可见属性吗?

我的数据表的列结构是

列[0]是Value列,然后有4个其他列.

我的网格视图的列结构是列[0],第1link field 列是 其他4列Value field from Dtable

Bha*_*iya 6

这是gridview中动态生成列的完美解决方案

请试试这个:

int indexOfColumn = 1; //Note : Index will start with 0 so set this value accordingly
protected void mygrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.Cells.Count > indexOfColumn)
    {
        e.Row.Cells[indexOfColumn].Visible = false;
    } 
}      
Run Code Online (Sandbox Code Playgroud)

对于.aspx页面编辑gridview标记如下:

 <asp:GridView ID="mygrid" runat="server" AllowPaging="True" 
       onpageindexchanging="mygrid_PageIndexChanging" PageSize="15" 
       PersistedSelection="true"  
       ondatabound="mygrid_DataBound"
       OnRowDataBound="mygrid_RowDataBound">
Run Code Online (Sandbox Code Playgroud)