Как динамически показывать изображения в виде сетки asp.net? - PullRequest
0 голосов
/ 18 марта 2009

У меня есть сетка, в которой есть столбец, который в настоящее время возвращает «1», если был выход, или 0, если нет. Я хотел бы показать изображение «Недурно», если значение равно 1 для каждой строки, или ничего, если 0.

Каков наилучший метод для этого? Я думал о том, чтобы как-то использовать событие rowdatabound, каков наилучший способ сделать это?

Спасибо

Mark.

Ответы [ 5 ]

2 голосов
/ 18 марта 2009

Другой подход, который является достаточно гибким, заключается в использовании столбца шаблона. Это дает вам большую свободу. Например, вы можете использовать значение вашего столбца для переключения аргументов в тег img (или для переключения между двумя тегами img) и / или для указания аргументов для ссылки.

Я всегда находил столбцы шаблонов довольно простыми.

2 голосов
/ 18 марта 2009

Событие, связанное с строкой данных, безусловно, дает вам возможность сделать это. Это довольно просто и интуитивно понятно. И, как уже упоминалось, вы можете использовать шаблон столбца. Вероятно, я бы просто использовал столбец шаблона или поле изображения для управления этим:

<Columns>
    <asp:ImageField HeaderText='Sign Off' 
        DataImageUrlField='<%# ThumbDisplay(Eval("SignOff")) %>' />
</Columns>

Тогда вам понадобится метод, подобный следующему в вашем коде:

protected string ThumbDisplay(int signoff)
{
    return (signoff == 1) ? "~\thumbsup.png" : "~\thumbsdown.png";
}

http://www.asp.net/learn/data-access/tutorial-12-cs.aspx содержит подробные сведения об использовании столбца шаблона.

Вероятно, лучший метод - это тот, который соответствует вашим потребностям. Будут ли другие колонки нуждаться в подобном массаже? Возможно, вам лучше позаботиться обо всем за один раз в событии с ограниченным количеством строк. Но если это будет ваша единственная модификация данных, с использованием столбца шаблона или столбца изображения, вероятно, будет проще всего следить и поддерживать чистоту всей страницы.

1 голос
/ 18 марта 2009

Это немного грязно, но все это содержится в теге шаблона:

<ItemTemplate>
  <img src='<%# (bool)Eval("signoff") ? "thumbsup" : "thumbsdown" %>.gif' alt="whatever" width="16" height="16" />
</ItemTemplate>

Надеюсь, это поможет!

1 голос
/ 18 марта 2009

Вы должны иметь возможность использовать столбец изображения и привязать URL к методу, который принимает 1 или 0 и возвращает правильный URL-адрес изображения. Смотри http://msdn.microsoft.com/en-us/library/aa479350.aspx.

0 голосов
/ 18 марта 2009

Спасибо, ребята, я закончил тем, что сделал это с ограниченным полем -> решением с ограниченным количеством строк.

У меня уже был код события с привязкой к базе данных, поэтому я просто добавил его. Я поставил там кнопку управления изображением и теперь хорошо выгляжу (немного не в центре, но, думаю, лучше, чем раньше).

Спасибо за предложения,

Mark.

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