如果Eval不为null,如何在GridView中可选地显示ImageButton?

时间:2017-03-27 08:36:27

标签: c# asp.net gridview

我有以下 GridView ObjectDataSource

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

在我的 TemplateField 中,我只想在 screenshotId 评估为非零非零值时显示该按钮。

如果 screenshotId DbNull 或0,那么我想将单元格留空。

我在 RowDataBound 上尝试了这个代码但没有成功,因为在 GridView 我只有单元格空白,如果 screenshotId < / strong>计算为非零非零值。

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;
            }

    }

}

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

这可以在gridview中完成:

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

因此,如果screenshotId为null,则设置控件Visible,然后设置为false,否则为true。