ASP.NET Как удалить атрибут style из элемента input type = 'image'?

я использую серверный элемент управления asp: ImageButton; я установил атрибут CssClass для своего стиля CSS, в котором я определил границу: сплошной 1px красный;

.NET автоматически отображает встроенный атрибут style следующим образом:

 style="border-width:0px;"

Q1. Могу ли я удалить автоматический встроенный стиль? например на PreRender, возможно, проверить HTML и отредактировать его? Я пробовал Attributes.Remove («стиль»), но это не работает (как ни странно, тоже не вызывает ошибок), и я помню, что где-то читал, что могу удалить только те атрибуты, которые я добавил вручную.

Мое обходное решение заключалось в том, чтобы назначить свойство BorderWidth = 1px на странице aspx, но какой смысл в предоставлении свойства CssClass, если оно все равно будет переопределено (автоматически!) Ошибка или функция?


person joedotnot    schedule 25.04.2009    source источник


Ответы (4)


Причина, по которой они это делают, связана с наследием HTML, в котором изображения по умолчанию имеют границы, когда они имеют тег <a>, обертывающий их. В большинстве случаев людям не нужны эти границы, поэтому ASP.NET делает то, что они делают. Чтобы обойти это, вы можете сделать следующее в своей таблице стилей (при условии, что вы устанавливаете cssclass='redborderbutton'):

.redborderbutton img
{
  border:solid 1px red !important;
}
person Keltex    schedule 25.04.2009

Вы можете использовать серверный элемент управления HTML.

<input id="Image1" runat="server" name="ImageButton1" src="images\image.jpg" type="image" />
person Phaedrus    schedule 25.04.2009

после рендеринга вы можете удалить его с помощью JQuery.

$(document).ready(function() { $("img").removeAttr('style'); }

Замените «img» селектором стиля css, но сохраните кавычки.

На самом деле, я часто делаю это в asp.net, чтобы "исправить" рендеринг asp.net по умолчанию.

person Chris Brandsma    schedule 25.04.2009

ASP - это самый хитрый набор тегов на свете. Даже если граница является «устаревшей», это можно решить с помощью CSS.

person Scott Taylor    schedule 17.10.2009