更改datagridview中图像按钮列中的图像

时间:2010-10-22 11:11:44

标签: c# image datagridview button

只是想知道是否有人曾设法找到一种方法 模板字段中的datagridview图像按钮列,根据不同的行显示不同的图像 在行中的一些数据元素上。我们的应用程序需要显示一系列 对帐户列收取的费用将小于500,500至1000或> 1000。部分费用按全额收费,其他费用按部分收费,部分费用根本不收费。用户 我希望看到一个简单的三态图形,它可以传达简单的信息 信息:完全充电,部分充电或免费。听起来很容易但是 我还没有找到办法做到这一点。我每次尝试 修改单个单元格的图形似乎想要更改图形 对于所有行。

有关这个问题的任何方法吗?

谢谢,

2 个答案:

答案 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/