ASP.NET HyperLink вместо LinkButton - как избежать границы вокруг изображения? - PullRequest
2 голосов
/ 01 октября 2010

У меня есть веб-сайт ASP.NET, который содержит некоторые ImageButton элементы управления, которые вызывают обратные передачи, используемые для фильтрации списка продуктов по определенным группам продуктов.

ImageButton был создан примерно так:

ImageButton _myImageButton = new ImageButton();
_myImageButton.ImageUrl = PicturePath + PictureName;
_myImageButton.Attributes.Add("border", "0");
_myImageButton.OnClick += handleImageButtonClick();
Controls.Add(_myImageButton);

Теперь я перехожу на ASP.NET 4.0 с SEO-ориентированными путями, такими как /products/category/item, и использую маршрутизацию с веб-формами для сопоставления URL-адресов с веб-формами. В процессе я хочу заменить кнопки изображений на элементы управления гиперссылками, показывающие изображение, чтобы я мог связать навигационный URL с каждым изображением.

Я создаю гиперссылку моего нового изображения примерно так:

HyperLink _myImageLink = new HyperLink();
_myImageLink.ImageUrl = PicturePath + PictureName;
_myImageLink.NavigateUrl = "/products/category/" + itemName;
_myImageLink.Attributes.Add("border", "0");
Controls.Add(_myImageLink);

Большая проблема, с которой я сталкиваюсь: ImageButton используется для добавления атрибута border="0" к тегу <img> в HTML, чтобы избежать границы вокруг изображения. Но как я могу достичь того же результата, используя элемент управления гиперссылкой?

При текущей настройке border="0" застревает на теге <a href="...."> - и это не совсем то, что мне нужно / нужно.

Есть идеи? Мысли ?? Я уже пробовал элементы .BorderStyle и .BorderWidth класса HyperLink - мне это не помогло (я все еще вижу границу вокруг своего изображения).

Что мне не хватает ?? Как я могу достичь своей цели ??

Ответы [ 3 ]

3 голосов
/ 01 октября 2010

Этот атрибут не вставляется автоматически в ASP.NET 4.0, поскольку он устарел;вместо этого вы должны использовать CSS, чтобы установить рассматриваемый тег img, чтобы он не имел границы.Одним из возможных предложений было бы установить его на теги img в тегах a:

a img{
  border: none;
}
0 голосов
/ 01 октября 2010

Вместо того, чтобы устанавливать свойство ImageUrl гиперссылки, почему бы вам не добавить изображение в качестве дочернего элемента гиперссылки, так что вы все равно можете установить для него все необходимые свойства.

0 голосов
/ 01 октября 2010

Кажется, что вы не знаете причину границы.

это просто из URL <a>

простой CSS может исправить это:

a {
  text-decoration: none;
}

или вы можете просто установить text-decoration: none; в своем стиле вашего imageLink

myImageLink.Attributes.Add("style", "text-decoration: none");
...