Изменение изображения в столбце кнопки изображения в представлении данных - PullRequest
2 голосов
/ 22 октября 2010

Просто интересно, удалось ли кому-нибудь когда-нибудь найти способ иметь столбец с изображением сетки данных в поле шаблона, который отображает разные изображения в разных строках в зависимости от некоторого элемента данных в строке.Наше приложение должно отображать ряд сборов, взимаемых со столбца учетной записи, который будет меньше 500, от 500 до 1000 или> 1000.Некоторые из этих сборов взимаются по полной ставке, другие по частичной ставке, а некоторые не взимаются вообще.Пользователь хотел бы видеть простую графику с 3 состояниями, которая передавала бы простую информацию: полный заряд, частичный заряд или бесплатный.Звучит достаточно легко, но мне пока не удалось найти способ сделать это.Каждый раз, когда я пытаюсь изменить изображение отдельной ячейки, мне кажется, что нужно изменить изображение для всех строк.

Как-нибудь обойти эту проблему?

Спасибо,

Ответы [ 2 ]

1 голос
/ 22 октября 2010

U может изменить изображение в таблице данных 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/

1 голос
/ 22 октября 2010

Вы можете сделать это с помощью

<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?";
}

Это, вероятно, можно сделать немного "красивее", ноЯ надеюсь, вы поняли идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...