Làm cách nào để chuyển đổi biểu định kiểu theo chương trình?
In lạiTác giả: Vũ trụ không gianThời gian cập nhật: 2023-11-03 21:58:55254
Tôi có một bộ bảng định kiểu với các tùy chọn màu khác nhau. Tôi đã tạo một điều khiển người dùng có chứa danh sách tùy chọn biểu định kiểu được đặt làm nút được liên kết. Khi được nhấp vào, tôi đặt biến phiên có đường dẫn đến biểu định kiểu mà tôi muốn sử dụng, sau đó kiểm tra phiên này trên trang chính và đặt biểu định kiểu tương ứng.
Vấn đề là những thay đổi về biểu định kiểu không có hiệu lực cho đến khi tôi làm mới lại trang. Làm cách nào để buộc biểu định kiểu tải lại ngay lập tức?
Đây là quyền kiểm soát người dùng của tôi:
onclick="lbGreen_Click">
onclick="lbMaroon_Click">
onclick="lbSilver_Click">
onclick="lbBlack_Click">
Đây là mã đằng sau điều khiển này:
lớp một phần công khai StylesheetPicker: System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) {
được bảo vệ void lbSilver_Click(người gửi đối tượng, EventArgs e) { SetStylesheet("bạc"); }
được bảo vệ void lbBlack_Click(người gửi đối tượng, EventArgs e) { SetStylesheet("đen"); }
khoảng trống riêng tư SetStylesheet (chuỗi đã chọnStyle) { switch(đã chọnStyle) { trường hợp "xanh": Phiên["style"] = "/css/green.css"; phá vỡ; trường hợp "màu hạt dẻ": Phiên ["style"] = "/css/maroon.css"; phá vỡ; vỏ "bạc": Phiên ["style"] = "/css/silver.css"; phá vỡ; trường hợp "đen": Phiên ["style"] = "/css/black.css"; phá vỡ; default: Phiên["style"] = "/css/green.css"; phá vỡ; } } }
Sau đó, đây là đoạn mã trên trang chính của tôi:
if(Phiên["style"] != null) { var stylesheet = Session["style"];
} khác {
}
Có vẻ như tôi phải bấm vào nút liên kết两次 để thay đổi bảng định kiểu. Tôi có thể làm gì để thay đổi ngay lập tức khi nhấp vào nút?
Cảm ơn
câu trả lời hay nhất
Cung cấp cho thành phần liên kết biểu định kiểu của bạn một id và sau đó bạn sẽ có thể thay đổi href trên đó thành một thành phần khác. Mã này hoạt động trong chrome, không chắc chắn về các trình duyệt khác:
Javascript để thay đổi nó:
var linkTag = document.getElementById('userStylesheet'); linkTag.href = "css/maroon.css";
Đối với các sự cố phía máy chủ, bạn có thể gặp sự cố khi chỉ chuyển hướng sau khi họ đăng lại các thay đổi để chúng có hiệu lực trong lần tải trang tiếp theo.
Tôi là một lập trình viên xuất sắc, rất giỏi!