Использование управления гиперссылкой с контролем поля изображения в виде сетки - PullRequest
1 голос
/ 26 апреля 2010

У меня есть вид сетки, и в столбце этого вида сетки отображаются изображения, путь которых хранится в базе данных, а изображение хранится в папке локали на моем веб-сайте.Моя проблема в том, что я хочу использовать элемент управления гиперссылкой с изображением, чтобы при щелчке по изображению он переходил на другую страницу.Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 26 апреля 2010

Во-первых, вы должны привязать данные к вашей сетке (в коде сзади):

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 можно найти здесь .

0 голосов
/ 26 апреля 2010

Вместо использования полей DataBound вы также можете использовать TemplateFiled в GridView:

<asp:TemplateField HeaderText="SomeText" >
    <ItemTemplate>
        // Put any kind of .NET Code in here
        // you can access the data bound values like this:
        <%# Eval("NameOfPropertyOnDataBoundObject")%>
    </ItemTemplate>
    <ItemStyle CssClass="tworows"></ItemStyle>
</asp:TemplateField>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...