2017-03-27 6 views
0

私は、次ののGridViewObjectDataSourceのを持っている:Evalがnullでない場合、ImageViewをGridViewに表示する方法

TemplateField
<asp:TemplateField> 
    <ItemTemplate> 
     <asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" /> 
    </ItemTemplate> 
</asp:TemplateField> 

私だけscreenshotIdがnullゼロ以外の値に評価された場合、ボタンを表示したいです。

screenshotIdはその後、私は、セルを空白のままにしたいDbNullにまたは0である場合。

のGridViewに私はscreenshotIdがnullゼロ以外の値に評価される場合にも、空白のセルのみを持っているので、私は成功せず、RowDataBound上の背後にあるこのコードを試してみました。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
      int screenshotId = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "screenshotId")); 
      ImageButton btnShowImage = e.Row.FindControl("imgbtnEdit") as ImageButton; 

      if (screenshotId > 0) 
      { 
       btnShowImage.Visible = true; 
       Response.Write(screenshotId + "<br />"); //here the value are 1 
      } 
      else 
      { 
       btnShowImage.Visible = false; 
      } 

    } 

} 

どのような方法が最適ですか?

+0

ここで、 'DBNull.Value'を確認していますか? –

答えて

0

これは、GridViewの中で行うことができます。screenshotIdが真そうでない場合はfalseその後、nullの場合

<asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" Visible='<%#Eval("screenshotId") == DBNull.Value ? false : true %>' /> 

Soは可視制御が設定されています。