Ответ 1
Это удалит все классы CSS из div с ID="mydiv"
Me.mydiv.Attributes("class") = ""
У меня на моем интерфейсе/веб-форме есть следующее:
<div id="mydiv" class="forceHeight" runat="server" />
Теперь у меня есть условие в моем коде, где, если определенная ситуация истинна, мне нужно удалить класс forceHeight
из этого элемента управления. Я знаю, что в С# вы можете использовать:
mydiv.CssClass.Replace("forceHeight", "");
Я не уверен, как вы это делаете с помощью VB? Intellisense не предлагает мне этот вариант?
Любые идеи кто-нибудь?
Это удалит все классы CSS из div с ID="mydiv"
Me.mydiv.Attributes("class") = ""
Если объект имеет несколько классов, вы можете удалить один из этих классов, отредактировав строку класса. Оба эти метода требуют присвоения идентификатора элементу HTML, чтобы вы могли указать его в коде.
<asp:Panel ID="mydiv" CssClass="forceHeight class2 class3" runat="server" />
VB.NET
mydiv.CssClass = mydiv.CssClass.Replace("forceHeight", "").Trim()
С#
mydiv.CssClass = mydiv.CssClass.Replace("forceHeight", "").Trim();
ИЛИ используя общий контроль HTML
<div id="mydiv" class="forceHeight class2 class3" runat="server" />
VB.NET
mydiv.CssClass = mydiv.CssClass.Replace("forceHeight", "").Trim()
С#
mydiv.Attributes["class"] = mydiv.Attributes["class"].Replace("forceHeight", "").Trim();
Опциональная Trim
для удаления пробела.
VB.NET
mydiv.Attributes("class") = ""
С#
mydiv.Attributes["class"] = "";
Удалит атрибут класса из объекта.
Me.mydiv.Attributes.Remove("class")
намного лучше, так как он не оставит позади. Он создаст более чистый HTML-тег.
<div id="mydiv"></div>
Если вы используете это,
Me.mydiv.Attributes("class") = ""
он произведет это вместо
<div id="mydiv" class=""></div>
ИЛИ <div id="mydiv" class></div>
Мне лучше использовать замену REGEX, поскольку замена класса может существовать как частичное имя в других классах, которые могли бы их разбить. Поэтому я использую следующий метод расширения:
public static void RemoveClass(this WebControl control, string classToRemove)
{
if (control == null)
return;
control.CssClass = Regex.Replace(control.CssClass, @"(^|\s)" + classToRemove + @"($|\s)", " ");
}
mydiv.Attributes["class"] = mydiv.Attributes["class"].ToString().Replace("ClassName","")