我有一個名爲'required'的Css類的文本框。當用戶點擊一個按鈕時,我想添加額外的Css類到名爲'error'的文本框中,而不刪除'required'類。我想從代碼隱藏中完成此任務。以編程方式添加額外的Css類
10
A
回答
13
您可以設置ASP.NET Textbox控件的CssClass屬性。要添加多個CSS類的元素,只是用空格分隔它:在代碼隱藏
<asp:TextBox ID="MyTextBox" runat="server" OnClick="MyTextBox_Click" />
然後:
你可以把這個在你的OnClick事件處理程序
void MyTextBox_Click(Object sender, EventArgs e) {
MyTextBox.CssClass = "class1 class2";
}
4
這是一種使用函數刪除css類的方法。添加一個類會非常相似。
public void RemoveCssClass(string className)
{
string[] splitClasses = TextButton.CssClass.Split(' ');
string separator = "";
foreach (string _class in splitClasses)
{
if (_class != className)
{
TextButton.CssClass += separator + _class;
separator = " ";
}
}
if (TextButton.CssClass == className)
TextButton.CssClass = "";
}
+2
這是很糟糕的代碼。怎麼樣像var lsc = splitClasses.ToList(); lsc.Remove(類名); TextButton.CssCLass = String.Join(「」,lsc); – NetMage
14
我決定爲WebControl創建擴展方法以獲得通用解決方案。 這裏是我的代碼:
public static class WebControlExtensions
{
public static void AddCssClass(this WebControl control, string cssClass)
{
if (string.IsNullOrEmpty(control.CssClass))
{
control.CssClass = cssClass;
}
else
{
string[] cssClasses = control.CssClass.Split(' ');
bool classExists = cssClasses.Any(@class => @class == cssClass);
if (!classExists)
{
control.CssClass += " " + cssClass;
}
}
}
public static void RemoveCssClass(this WebControl control, string cssClass)
{
if (!string.IsNullOrEmpty(control.CssClass))
{
string[] cssClasses = control.CssClass.Split(' ');
control.CssClass = string.Join(" ", cssClasses.Where(@class => @class != cssClass).ToArray());
}
}
}
0
這裏有一個簡單的C#的方法來添加或刪除的CssClass成的WebControl ...
public static void SetOrRemoveCssClass(WebControl control, string className, bool adding)
{
string[] splitClasses = control.CssClass.Split(' ');
bool hasNow = splitClasses.Contains(className);
if (adding && !hasNow)
{
control.CssClass += " " + className;
}
else if (!adding && hasNow) // remove the CssClass attribute
{
control.CssClass = control.CssClass.Replace(className, "");
}
control.CssClass = control.CssClass.Replace(" "," ").Trim();
}
相關問題
- 1. Symfony:以編程方式添加外鍵
- 2. 向現有類添加額外的CSS
- 3. 子類以編程方式添加NSButton?
- 4. 以編程方式將CSS類添加到ListItem中
- 5. 以編程方式將額外字段添加到android通話記錄
- 6. 如何以編程方式在LinearLayout中添加ImageView而無需額外空格?
- 7. ASP.NET:以編程方式創建CSS類
- 8. 以編程方式創建CSS類ASP.Net
- 9. 以編程方式添加工具欄的UIToolbar外觀
- 10. 以編程方式移除GridView周圍的額外空間
- 11. 以編程方式添加DOJO CheckedMultiSelect
- 12. DataGridView並以編程方式添加列
- 13. 以編程方式添加時間戳
- 14. Log4j2 + Java:以編程方式添加asyncLogger
- 15. Android以編程方式添加ImageView
- 16. 以編程方式添加UIToolbar
- 17. 如何以編程方式添加Slidingpanelyout?
- 18. 以編程方式添加asp.net ajax DragPanelExtender
- 19. 以編程方式添加XmlIncludeAttribute
- 20. 以編程方式添加string.concat
- 21. 以編程方式添加Azure組件
- 22. 以編程方式添加圖像
- 23. VC++以編程方式添加excel OLEObject?
- 24. 以編程方式添加onclick事件
- 25. NSArrayController - 添加:&刪除:以編程方式
- 26. 以編程方式垂直添加EditText
- 27. 以編程方式添加TabBarController
- 28. 如何以編程方式添加ZedGraph?
- 29. 以編程方式添加imageView時OutOfMemoryError
- 30. 以編程方式添加configChanges =「locale」
這將與客戶端代碼容易得多。是否有一個特定的原因希望在代碼隱藏中做到這一點? – xanderer
從代碼隱藏(從開發的角度來看)並不那麼困難。但是你說得很對,在客戶端很容易,而且不需要往返服務器。 –
@Ken他想要這樣做onclick。 – xanderer