Tôi có một hộp văn bản với một lớp Css được gọi là 'bắt buộc'. Khi người dùng nhấp vào một nút, tôi muốn thêm lớp Css bổ sung vào hộp văn bản được gọi là 'lỗi' mà không xóa lớp 'bắt buộc'. Tôi muốn thực hiện điều này từ code-behind.Thêm lớp Css bổ sung theo chương trình
Trả lời
Bạn có thể đặt thuộc tính CssClass của điều khiển hộp văn bản ASP.NET. Để thêm nhiều hơn một lớp CSS cho một yếu tố, chỉ cần tách nó với một không gian:
MyTextBox.CssClass = "class1 class2";
Bạn có thể đặt điều này trong xử lý sự kiện OnClick của bạn:
<asp:TextBox ID="MyTextBox" runat="server" OnClick="MyTextBox_Click" />
Sau đó, trong code-behind:
void MyTextBox_Click(Object sender, EventArgs e) {
MyTextBox.CssClass = "class1 class2";
}
hah tôi không biết bạn có thể làm điều đó. Và nếu tôi muốn xóa lớp css thứ hai thì sao? MyTextBox.CssClass = "class1"; ?? – Dragan
okay nhưng nếu tôi không biết CssClass kia là gì. Tôi sẽ được thực hiện với mã hóa và cung cấp cho back-end cho các nhà thiết kế .. trong trường hợp đó tôi sẽ hafta biết tên của CssClass là gì. Tôi không thích làm việc như thế này vì nó được mã hóa cứng. Tôi không thể làm textbox.cssclas + = "class2"; – Dragan
Có, chỉ cần đặt thuộc tính cho lớp duy nhất. Bạn thực sự chỉ cần thiết lập một giá trị chuỗi của những gì sẽ xuất hiện trong thuộc tính lớp cho điều khiển. –
Đây là cách để loại bỏ lớp css bằng cách sử dụng một hàm. Thêm một lớp sẽ rất giống nhau.
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 = "";
}
Đó là mã khá xấu. Làm thế nào về một cái gì đó như var lsc = splitClasses.ToList(); lsc.Remove (className); TextButton.CssCLass = String.Join ("", lsc); – NetMage
Tôi quyết định tạo các phương pháp mở rộng cho WebControl để có giải pháp chung. Dưới đây là mã của tôi:
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());
}
}
}
Dưới đây là một C# phương pháp đơn giản để thêm hoặc xóa một CssClass thành một 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. jQuery: thêm tệp CSS bổ sung vào trang hiện tại
- 2. Tại sao LLVM thêm hai hướng dẫn bổ sung cho cùng một chương trình?
- 3. thêm gesturerecongnizer theo chương trình
- 4. Có thể thêm các trường bổ sung vào bảng bổ sung @ManyToMany Hibernate không?
- 5. Thêm các trường bổ sung vào fullcalendar
- 6. thêm UITableView theo chương trình vào UIViewController
- 7. Cách thêm thuộc tính theo chương trình
- 8. Javascript - thêm chọn theo chương trình
- 9. trình bổ sung elasticfox ở đâu?
- 10. Viết các trình bổ sung cho TortoiseSVN
- 11. Trình bổ sung VisualStudio nào với Mercurial?
- 12. Thêm phương thức bổ sung vào giao diện
- 13. lập trình thêm lớp css vào ListItem
- 14. Thêm tham số bổ sung để gửi biểu mẫu
- 15. Thêm đường dẫn bổ sung vào exec-maven-plugin
- 16. Có thể sắp xếp theo các lớp con trong `NSFetchRequest` mà không thêm thuộc tính bổ sung?
- 17. Tham số bổ sung cho FileSystemEventHandler
- 18. Thêm thông tin tiêu đề bổ sung trong email codeigniter
- 19. Thêm bộ kiểm tra bổ sung vào Gradle
- 20. java mở rộng hoặc bọc một lớp để thêm chức năng bổ sung
- 21. Làm thế nào để tạo một chương trình Java có thể bổ sung?
- 22. Trình chỉnh sửa và trình bổ sung tabstop đàn hồi
- 23. Làm cách nào để thêm các mục bổ sung vào NSMenu trong Trình tạo giao diện?
- 24. Thêm thuộc tính bổ sung cho mỗi thuộc tính của một lớp
- 25. Thêm & Xóa lớp bổ sung trên thẻ phần tử của tôi
- 26. thêm chú thích dữ liệu theo chương trình
- 27. .csproj File - Thêm/xóa các tập tin theo chương trình
- 28. Thêm dữ liệu bổ sung vào bảng kết nối - Rails
- 29. thêm tài nguyên bổ sung vào một maven pom
- 30. Thêm các tệp js bổ sung vi phạm jQuery IntelliSense
này sẽ dễ dàng hơn nhiều với mã phía khách hàng. Có một lý do cụ thể để muốn làm điều này trong codebehind? – xanderer
Nó không thực sự khó khăn (từ một quan điểm phát triển) từ mã phía sau. Nhưng bạn đúng về việc dễ dàng ở phía khách hàng và không yêu cầu một chuyến đi khứ hồi tới máy chủ. –
@Khi anh ấy muốn làm điều này onclick. – xanderer