サーバー側を使用しようとしました.CssClass
が、これは使用できません。私のdivrunat="server"
にはアクセスできるようになっていますが.CssClass
、「.」をクリックするとドロップダウンに表示されません。これを乗り越える方法、または機能する可能性のある他のソリューションを知っている人はいますか?
わかりました、悪いです。これはHTMLコントロールでは機能せず、aspコントロールでのみ機能することがわかりました
クラス名を読みたい場合は、次のコードを使用する必要があります。
string className = Test.Attributes["class"].ToString();
特定のクラスを置き換えたい場合は、次のコードを使用する必要があります。
Test.Attributes.Add("class", Test.Attributes["class"].ToString().Replace("spacerDiv", ""));
HTML
<div id="Test" runat="server"></div>
コードビハインド
add => Test.Attributes.Add("class", "myClass")
remove => Test.Attributes.("class") = "";
HtmlGenericControl のクラスの追加または削除を処理するためのより良い方法は、以下に示す拡張機能を使用することです。
public static void RemoveCssClass(this HtmlGenericControl controlInstance, string css)
{
var strCssClass = controlInstance.Attributes["class"];
controlInstance.Attributes["class"] = string.Join(" ", strCssClass.Split(' ').Where(x => x != css).ToArray());
}
public static void AddCssClass(this HtmlGenericControl controlInstance, string css)
{
var strCssClass = controlInstance.Attributes["class"];
controlInstance.Attributes["class"] = string.Join($" {css} ", strCssClass.Split(' ').ToArray());
}
WebControl の場合、同じコードを次のように変更できます。
public static void RemoveCssClass(this WebControl controlInstance, string css)
{
controlInstance.CssClass = string.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray());
}
public static void AddCssClass(this WebControl controlInstance, string css)
{
controlInstance.CssClass = string.Join($" {css} ", controlInstance.CssClass.Split(' ').ToArray());
}