Во-первых, вы должны привязать данные к вашей сетке (в коде сзади):
public override void DataBind()
{
// you implementation of getting data
yourGridId.DataSource = GetData();
yourGridId.DataBind();
}
Тогда я бы предложил использовать поле шаблона для вашего изображения:
<asp:gridview id="yourGridId"
runat="server">
<columns>
<asp:templatefield headertext="An Image">
<itemtemplate>
<a href="pageWhereToGo.aspx">
<img src='<%# ResolveUrl((string)Eval("ImageUrl"))%>' />
</a>
</itemtemplate>
</asp:templatefield>
</columns>
</asp:gridview>
Приведенный выше код предполагает, что пути к изображениям в вашей базе данных хранятся как относительные пути из вашего приложения (например, ~/assets/images/image1.jpg
) или как полные пути (например, http://www.contoso.com/assets/images/image1.jpg
). Также предположим, что ваш источник данных содержит путь к изображению в поле ImageUrl
.
Таким образом, приведенный выше пример представляет собой простейшую сетку с одним столбцом asp:templatefield
: вот изображение, по которому можно кликнуть, которое переходит на страницу pageWhereToGo.aspx
при событии щелчка.
Подробнее о полях столбцов Gridview можно найти здесь .