刪除特定的類名在C#ASP.NET我加入一個類來使用<input>
:編程方式從HTML元素
myInput.Attributes.Add("class","myClass");
在某些時候,我想刪除添加的類(並非所有的類)。有沿線的等價物:
myInput.Attributes.Remove("class","myClass");
.Remove()
似乎只能接受一個鍵盤(無對的值)。謝謝!
刪除特定的類名在C#ASP.NET我加入一個類來使用<input>
:編程方式從HTML元素
myInput.Attributes.Add("class","myClass");
在某些時候,我想刪除添加的類(並非所有的類)。有沿線的等價物:
myInput.Attributes.Remove("class","myClass");
.Remove()
似乎只能接受一個鍵盤(無對的值)。謝謝!
沒有內置管理屬性中的多個值。
您將不得不解析列表,刪除類名並更新屬性。
喜歡的東西(未經測試):
var classes = myInput.Attributes["class"].Split(' ');
var updated = classes.Where(x => x != "classtoremove").ToArray();
myInput.Attributes["class"] = string.Join(" ", updated);
我被Odeds後的啓發,創造了爲你精心這兩種擴展方法;
public static void AddCssClass(this WebControl control, params string[] args)
{
List<string> classes = control.CssClass.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList<string>();
List<string> classesToAdd = args.Where(x => !classes.Contains(x)).ToList<string>();
classes.AddRange(classesToAdd);
control.CssClass = String.Join(" ", classes);
}
public static void RemoveCssClass(this WebControl control, params string[] args)
{
List<string> classes = control.CssClass.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList<string>();
classes = classes.Where(x => !args.Contains(x)).ToList<string>();
control.CssClass = String.Join(" ", classes);
}
的方法是簡單地用於從WebControls添加或刪除CSS類(從那裏Button S,Label S,Panel小號等所有繼承)等myButton.AddCssClass("class1", "class2");
或myButton.RemoveCssClass("class2");
。
這可能是一個很大的開銷,但管理CssClass屬性也可能有點麻煩,因爲你必須自己處理空白。
例如,您沒有看到過這樣的多少次?
string myCssClass = "class1";
myButton.CssClass += " " + myCssClass;
請隨時改進方法! :)
你什麼時候需要刪除CSS類?如果''元素沒有'runat =「server」',那麼您從代碼隱藏中添加的任何屬性都不會在回發之間持續存在,無論如何。 –
好的電話,我甚至懶得去想這件事。感謝您幫助我意識到我不必擔心刪除它! – Jesse