我有以下 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;
}
}
}
最好的方法是什么?
答案 0 :(得分:1)
这可以在gridview中完成:
<asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" Visible='<%#Eval("screenshotId") == DBNull.Value ? false : true %>' />
因此,如果screenshotId为null,则设置控件Visible,然后设置为false,否则为true。