Asp.net 根据值更改gridview中的单个图像

Asp.net 根据值更改gridview中的单个图像,asp.net,vb.net,gridview,Asp.net,Vb.net,Gridview,我有两个表格分配和反馈,在gridview中显示所有分配,然后分配得到反馈。然后,我想根据是否有新的反馈更改gridview中的“查看反馈”按钮,例如: 反馈表中有一个状态字段,所以当它为1时,我希望该图像按钮更改为具有+ 提前谢谢 Houlahan在ItemDataBound事件中,您可以更改图像的url Image img = (Image)e.Item.FindControl("ImgId"); img.NavigateUrl = "~/images/othersource.png";

我有两个表格分配和反馈,在gridview中显示所有分配,然后分配得到反馈。然后,我想根据是否有新的反馈更改gridview中的“查看反馈”按钮,例如:

反馈表中有一个状态字段,所以当它为1时,我希望该图像按钮更改为具有+

提前谢谢
Houlahan

在ItemDataBound事件中,您可以更改图像的url

Image img = (Image)e.Item.FindControl("ImgId");
img.NavigateUrl = "~/images/othersource.png";

如何确定行是否需要更改?您还可以获取绑定行。DataRowView dr=(DataRowView)e.Item.DataItem;因此,在从数据库绑定数据时,您可以确定该映像是否需要更改。由于某些原因,它不喜欢强制转换为datarowview:System.InvalidCastException:无法强制转换类型为“VB$AnonymousType_0`4”的对象[System.String,System.Int32,System.DateTime,System.Int32]“要键入”System.Data.DataRowView“。您没有绑定数据集,对吗?尝试强制转换绑定时使用的对象类型。您可以发布绑定代码。另一个建议是将检查标志绑定到不可见的标签上(此图像是否应该不同)。并使用标签的值。Label l=(Label)e.Item.FindControl(“lblInvisible”);if(lblInvisible.Text==“1”){//使用另一个图像。}Dim dr As DataRowView=DirectCast(e.Row.DataItem,DataRowView)e.Row.DataItem为我提供了所需的行和数据,但它不会强制转换到DataRowView