Gridview -Problem

时间:2011-04-05 12:36:08

标签: c# gridview

我在gridview中显示了三个字段。根据第一个字段的值,我必须显示或隐藏后两个字段。

以下代码是我到目前为止所尝试的,但我不知道如何获得完整的解决方案。

有人可以看一下吗?

这三个字段是

1)activeStatus

2)DateMadeInactive

3)共

 protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType  == DataControlRowType.DataRow)
        { 
            bool activeStatus=Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem,"Active"));
            if(activeStatus)
            {
               // I need to display the activeStatus columns    
            }
           else
           {
               // I need to hide activeStatus Column and Display the DatemadeInactive     and  Comments
           }

        }

    }

3 个答案:

答案 0 :(得分:1)

您可以将条件放入模板字段中:

  <asp:GridView ... runat="server">
    <Columns>
      ... your other fields ...
      <asp:TemplateField HeaderText="Status">
        <ItemTemplate>

          <asp:Label Text='<%# (bool)Eval("Active")
                               ? Eval("activeStatus") 
                               : Eval("DateMadeInactive", "Inactive since {0}") %>'
            runat="server"/> 

        </ItemTemplate>
      </asp:TemplateField>
    </Columns>
  </asp:GridView>

答案 1 :(得分:1)

我从您的问题中收集到的是您想知道如何隐藏或显示DataGridView中的任何给定列。如果是这样,您只需要使用DataSource或手动将列添加到DataGridView,然后通过执行以下操作隐藏您不想要的任何列:

dataGridView1.Columns["YourColumnName"].Visible = false;

答案 2 :(得分:0)

我使用IIRC,CellFormatting事件做了类似的事情。它使您有机会测试每个单元格的值,并根据它替换它或行中的其他单元格。在我的例子中,我用查找的字符串替换数值并改变背景颜色。