只是想知道是否有人曾设法找到一种方法 模板字段中的datagridview图像按钮列,根据不同的行显示不同的图像 在行中的一些数据元素上。我们的应用程序需要显示一系列 对帐户列收取的费用将小于500,500至1000或> 1000。部分费用按全额收费,其他费用按部分收费,部分费用根本不收费。用户 我希望看到一个简单的三态图形,它可以传达简单的信息 信息:完全充电,部分充电或免费。听起来很容易但是 我还没有找到办法做到这一点。我每次尝试 修改单个单元格的图形似乎想要更改图形 对于所有行。
有关这个问题的任何方法吗?
谢谢,
答案 0 :(得分:1)
您可以使用
执行此操作<TemplateField>
<ItemTemplate>
<asp:ImageButton runat="server" ImageUrl='<%# GetImage(Eval("check") as string) %>' />
</ItemTemplate>
</TemplateField>
GetImage()
是代码隐藏中的方法:
protected string GetImage(string check)
{
if ((check == "2") || (check == "null") || (check == "3") || (check == "-1"))
{
return "../Interbacs/images/error.gif";
}
else if (check == "1")
{
return "../Interbacs/images/ok.png"
}
return "what?";
}
这可能有点“漂亮”,但我希望你明白这一点。
答案 1 :(得分:1)
你可以在datagridview CellPainting中更改图像。
eg:
private void datagridview_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.ColumnIndex == 1 && e.RowIndex >= 0)
{
if (Convert.ToInt32 (datagridview.Rows[e.RowIndex].Cells["columnName"].Value)<500)
{
e.Paint(e.CellBounds, DataGridViewPaintParts.All);
e.Graphics.DrawImage('Give Image path here', e.CellBounds.Left + 5, e.CellBounds.Top + 5);
}
}
}
或者检查一下 http://www.codeproject.com/KB/grid/DGV_ImageButtonCell.aspx/