Divがあり、CSSクラスをコードに追加しようとしていますが、しようとすると次のエラーが表示されます
Property or indexer 'System.Web.UI.HtmlControls.HtmlControl.Style' cannot be assigned to -- it is read only
私は次のコードを使用しています:
protected void BTNEvent_Click(object sender, ImageClickEventArgs e)
{
BtnventCss.Style= "hom_but_a";
}
誰でも助けてくれますか?
仮に:
<asp:Button ID="Button1" runat="server" CssClass="test1 test3 test-test" />
すべてのクラスを上書きする代わりに、クラスを追加または削除するには
BtnventCss.CssClass = "hom_but_a"
hTMLを正確に保つ:
string classname = "TestClass";
// Add a class
BtnventCss.CssClass = String.Join(" ", Button1
.CssClass
.Split(' ')
.Except(new string[]{"",classname})
.Concat(new string[]{classname})
.ToArray()
);
// Remove a class
BtnventCss.CssClass = String.Join(" ", Button1
.CssClass
.Split(' ')
.Except(new string[]{"",classname})
.ToArray()
);
これにより、
特に、クライアント側の開発が1つの要素で複数のクラス名を使用している場合。
あなたの例では、
string classname = "TestClass";
// Add a class
Button1.Attributes.Add("class", String.Join(" ", Button1
.Attributes["class"]
.Split(' ')
.Except(new string[]{"",classname})
.Concat(new string[]{classname})
.ToArray()
));
// Remove a class
Button1.Attributes.Add("class", String.Join(" ", Button1
.Attributes["class"]
.Split(' ')
.Except(new string[]{"",classname})
.ToArray()
));
これをメソッド/プロパティでラップする必要があります;)
_<div runat="server">
_はHtmlGenericControl
にマップされます。 BtnventCss.Attributes.Add("class", "hom_but_a");
を使用してみてください
非ASP.NETコントロール、つまりdiv, table, td, tr
などのHTMLコントロールの場合、最初にそれらをサーバーコントロールにし、IDを割り当て、次にサーバーコードからプロパティを割り当てる必要があります。
<head>
<style type="text/css">
.top_rounded
{
height: 75px;
width: 75px;
border: 2px solid;
border-radius: 5px;
-moz-border-radius: 5px; /* Firefox 3.6 and earlier */
border-color: #9c1c1f;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div runat="server" id="myDiv">This is my div</div>
</form>
</body>
myDiv.Attributes.Add("class", "top_rounded");
使用できる拡張方法は2つあります。既存のクラスが保持されることを保証し、追加されるクラスを複製しません。
_public static void RemoveCssClass(this WebControl control, String css) {
control.CssClass = String.Join(" ", control.CssClass.Split(' ').Where(x => x != css).ToArray());
}
public static void AddCssClass(this WebControl control, String css) {
control.RemoveCssClass(css);
css += " " + control.CssClass;
control.CssClass = css;
}
_
使用法:hlCreateNew.AddCssClass("disabled");
使用法:hlCreateNew.RemoveCssClass("disabled");
Button1.CssClass += " newClass";
これにより、そのコントロールの元のクラスは消去されません。これを試してください、それは動作するはずです。
[〜#〜] add [〜#〜]クラスをhtml要素に参照する cssクラスをhtml汎用コントロールdivに追加する方法? 。ここに与えられたものと同様の答えがありますが、addクラスをhtml要素。