asp.net HyperLinkField Не имеет свойства всплывающей подсказки (Alt text) - PullRequest
9 голосов
/ 29 апреля 2009

Хотелось бы, чтобы в HyperLinkField было поле ToolTip, поскольку оно есть в HyperLink. Я создаю HyperLinkField с помощью кода перед привязкой к моему источнику данных:

HyperLinkField hl = new HyperLinkField(); 
hl.DataNavigateUrlFields = new string[] { "col" };
hl.DataNavigateUrlFormatString = "{0}";
hl.DataTextField = "Foo";

Есть ли способ также установить значение для чего-то, что будет отображаться в виде всплывающей подсказки (или альтернативного текста)? Любая помощь будет оценена.

Ответы [ 2 ]

12 голосов
/ 29 апреля 2009

Правильно, в HyperlinkField отсутствует свойство всплывающей подсказки / текста. Чтобы обойти этот недостаток, вам нужно использовать поле шаблона и добавить обычный элемент управления гиперссылкой.

<asp:TemplateField HeaderText="Href">
    <ItemTemplate>
       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#
          Eval("Href") %>' Text='<%# Eval("Href") %>' ToolTip='<%# Eval("Text")         %>'> 
       </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

Тем не менее, выполнение этого в программе требует большой работы. Вам нужно создать свой собственный класс, который реализует интерфейс ITemplate . Вот учебник по этому вопросу.

6 голосов
/ 31 августа 2011

Ваше требование может быть выполнено в самой <asp:HyperlinkField> путем добавления всплывающей подсказки для этой конкретной ячейки в RowDataBound событии GridView. После привязки GridView к вашему источнику данных вы можете сделать это в событии RowDataBound следующим образом:

if (e.Row.RowType == DataControlRowType.DataRow)
{
    e.Row.Cells[0].ToolTip = "Your tooltip text";
}

Хотя вы приняли другой ответ, мой ответ может оказаться полезным для некоторых других пользователей!

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