在ItemDataBound事件里做//假设第一列绑定state,第2列为模板列
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
if ( e.Item.Cells[0].Text.Trim() != "1" )
{
((Image)e.Item.Cells[1].FindControl("ImageID")).Visible = false;
}
}
}

解决方案 »

  1.   

    先谢谢楼上的大哥
    但运行时报错了((Image)e.Item.Cells[1].FindControl("ImageID")).Visible = false;这句“Image为不确定应用”
      

  2.   

    不好意思是“Image是不明确的引用”
      

  3.   

    你确定你绑定的是一个Image控件吗?
      

  4.   

    if(state=1)
       DataGrid1.Columns[0].Visible=true;
    else
       DataGrid1.Columns[0].Visible=false;
    Columns[0]为第几列.
      

  5.   

    Dim img As System.Web.UI.WebControls.Image = e.Item.Cells(0).FindControl("image1")
            If Not img Is Nothing Then
                img.Visible = IIf(e.Item.Cells(1).Text = 1, True, False)        End If
      

  6.   

    确实是放了Image的
    没办法了,我只能放HyperLink了,把imageUrl设为图片的路径,再把enable设为false了