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

C# 更改datagridview中图像按钮列中的图像,c#,image,datagridview,button,C#,Image,Datagridview,Button,只是想知道是否有人曾经设法找到一种方法来 模板字段中的datagridview image button列,根据需要在不同的行上显示不同的图像 在行中的某个数据元素上。我们的应用程序需要显示一系列 对小于500、500到1000或>1000的账户列收取的费用。这些费用有的是全额收费,有的是部分收费,有的根本不收费。用户 希望看到一个简单的3状态图形,它将传达简单的 信息:完全充电、部分充电或不充电。听起来很简单,但是 我还没有找到一个方法来做到这一点。每次我试图 修改单个单元格的图形似乎要更改图

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

有办法解决这个问题吗

谢谢,

您可以用

<TemplateField>
    <ItemTemplate>
        <asp:ImageButton runat="server" ImageUrl='<%# GetImage(Eval("check") as string) %>' />
    </ItemTemplate>
</TemplateField>

这也许可以做得“漂亮一点”,但我希望你能理解。

你可以在datagridview CellPaint中更改图像

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);

                        }
                 }
         } 
例如:
私有void datagridview_CellPainting(对象发送方,DataGridViewCellPaintingEventArgs e)
{ 
如果(e.ColumnIndex==1&&e.RowIndex>=0)
{        

if(Convert.ToInt32(datagridview.Rows[e.RowIndex].Cells[“columnName”].Value)使用哪种语言?我想做的是这样的:if((check==“2”)|(check==“null”)|(check==“3”)| |(check==“1”)//{///ImageButton image1=FindControl(“ImageButton1”)as ImageButton;//image.ImageUrl=“../Interbacs/images/error.gif”//}//else if(check==“1”)//{//{image.ImageUrl=“../Interbacs/images/ok.png”//}嗯,我不能在asp.netWell中使用DataGridViewCellPaintingEventArgs。我解决了这个问题:使用gridview\u rowdatabound来解决d问题。不管怎样,感谢你们的帮助…真的很感谢。但是,使用gridview\u rowdatabound,你们将不必要地扰乱你们的视图状态。尽可能在模板/数据中指定它直接绑定。看到这个了吗
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);

                        }
                 }
         }