如何在asp.net gridview中动态显示图像?

时间:2009-03-17 23:52:27

标签: asp.net gridview

我有一个gridview,如果有签名,则当前返回“1”的列,否则返回0。如果每行的值为1,我想显示一个“Thumbs up”图像,如果为0则不显示。

这样做的最佳方法是什么?我在想某种方式使用rowdatabound事件,最好的方法是什么?

谢谢,

标记。

5 个答案:

答案 0 :(得分:2)

另一种非常灵活的方法是使用模板列。这给了你很多自由。例如,您可以使用列的值将参数切换为img标记(或在两个img标记之间切换)和/或指定链接的参数。

我总是发现模板列非常简单。

答案 1 :(得分:2)

rowdatabound事件当然为您提供了执行此操作的能力。这样做非常简单直观。如上所述,您可以使用模板列。我可能只是使用模板列或图像字段来管理它:

<Columns>
    <asp:ImageField HeaderText='Sign Off' 
        DataImageUrlField='<%# ThumbDisplay(Eval("SignOff")) %>' />
</Columns>

然后,您需要在代码隐藏中使用类似以下的方法:

protected string ThumbDisplay(int signoff)
{
    return (signoff == 1) ? "~\thumbsup.png" : "~\thumbsdown.png";
}

http://www.asp.net/learn/data-access/tutorial-12-cs.aspx详细介绍了如何使用模板列。

最好的方法可能是适合您的其他显示需求的方法。其他栏需要类似的按摩吗?你可能最好在rowdatabound事件中一次性处理它。但是,如果它是您对数据的唯一修改,使用模板列或图像列,可能是最容易遵循的,并保持整个页面清洁。

答案 2 :(得分:1)

您应该能够使用图像列并将网址绑定到采用1或0的方法并返回正确的图像网址。请参阅http://msdn.microsoft.com/en-us/library/aa479350.aspx

答案 3 :(得分:1)

这有点乱,但它都包含在模板标签中:

<ItemTemplate>
  <img src='<%# (bool)Eval("signoff") ? "thumbsup" : "thumbsdown" %>.gif' alt="whatever" width="16" height="16" />
</ItemTemplate>

希望这有帮助!

答案 4 :(得分:0)

谢谢你们,我最后用一个边界域做了 - &gt; rowdatabound解决方案。

我已经发生了数据绑定事件代码,所以我只是添加了它。我在那里放了一个图像按钮控件,现在看起来不错(有点偏离中心,但我想它比以前更好)。

感谢您的建议,

标记。