2008-11-19 34 views
11

Tôi đang làm việc trên ứng dụng web .NET và tôi đang sử dụng điều khiển CalendarExtender trong đó để người dùng chỉ định ngày. Vì lý do nào đó, khi tôi nhấp vào biểu tượng để hiển thị lịch, nền có vẻ trong suốt.Tại sao CalendarExtender của tôi bị chồng chéo khi được hiển thị?

Tôi đang sử dụng bộ mở rộng trên các trang khác và không gặp sự cố này.

Tôi không chắc liệu nó có đáng nói hay không, nhưng lịch được lồng trong một bảng có bộ mở rộng góc tròn gắn với nó, cũng như bảng bên dưới nó (nơi "Từ" trùng lặp).

Trong bảng điều khiển đó, tôi có thiết lập bố cục div để tạo hai cột.

EDIT: Điều khác cần lưu ý ở đây là phần có tên và "placeholders" cho biệt hiệu là tất cả các điều khiển nhãn ASP.NET, nếu điều đó quan trọng.

+0

Tôi đang gặp sự cố tương tự. Trên biểu mẫu web thông thường, lịch sẽ bật lên với nền chính xác. Trên một biểu mẫu con xuất hiện như một hộp thoại, lịch là trong suốt. Tôi đã thử mọi đề xuất được liệt kê ở đây và không ai trong số họ khắc phục được sự cố của tôi. Bất cứ ai có bất cứ đề nghị bổ sung? My css: .MyCalendar .ajax__calendar_container { \t đường viền: 1px rắn # 646464; \t màu nền: # D3DEEF; \t màu: # 003366; \t tràn: hiển thị! vị trí: tuyệt đối; \t khả năng hiển thị: hiển thị; display: block; \t z-index: 10000; } – CoolBreeze

Trả lời

24

Vì vậy, một số chi tiết khác xung quanh và tôi đã tìm ra vấn đề. Một phần của vấn đề phát sinh từ thực tế là bố cục div tôi thiết lập để tạo ra hai cột riêng biệt đang sử dụng vị trí: tương đối và float: thuộc tính phải/trái. Từ những gì tôi đã đọc, ngay sau khi bạn bắt đầu tăng thêm thuộc tính vị trí của thẻ div, nó ảnh hưởng đến chỉ mục z của hiển thị, điều này chỉ phức tạp khi điều khiển lịch "tự động bật lên".

Thật không may là không có thuộc tính Z-Index đối với CalendarExtender, trừ khi bạn muốn viết toàn bộ kiểu cho lịch mà tôi không muốn làm. Tuy nhiên, bạn có thể mở rộng phong cách mặc định bằng cách thêm dòng sau vào file CSS của bạn:

.ajax__calendar_container { z-index : 1000 ; } 

Nếu bạn không sử dụng một file CSS, bạn cũng có thể thêm vào phần đầu trang của bạn:

<style type="text/css"> 
    .ajax__calendar_container { z-index : 1000 ; } 
</style> 

và điều đó cần thực hiện thủ thuật. Nó làm việc cho tôi. Nếu vì một số lý do điều này không hiệu quả (và một số người vẫn đang báo cáo vấn đề), cách tiếp cận "tích cực" hơn một chút là bao bọc các trường nhập và CalendarExtender trong thẻ DIV rồi thêm phần sau vào CSS của bạn tệp/phần HEAD:

.ajax__calendar { 
    position: relative; 
    left: 0px !important; 
    top: 0px !important; 
    visibility: visible; display: block; 
} 
.ajax__calendar iframe 
{ 
    left: 0px !important; 
    top: 0px !important; 
} 

... và hy vọng điều đó sẽ phù hợp với bạn.

+0

Đối với tôi '.ajax__calendar_container {z-index: 1000; } 'không hoạt động. Nhưng '.axax__calendar {z-index: 5000; } 'đã làm việc! Cảm ơn. –

0

Điều đó không rõ ràng đối với tôi, có vẻ như nó đang hiển thị "đằng sau" các phần tử khác. Bạn có chỉ định "chỉ mục z" cho bất kỳ mục nào không?

+0

Không có chỉ mục Z được chỉ định trong bố cục, nhưng tôi tự hỏi liệu có thể có thứ gì đó cho thứ tự hiển thị trên trang sẽ ảnh hưởng đến nó không? Nếu tôi đặt một Z-Index vào, tôi nên làm điều đó trên lịch, hoặc các thẻ div bên dưới để di chuyển nó trở lại? –

+0

Khó để nói mà không cần nhìn vào HTML và poking về với calendarextend. Tôi có thể sử dụng FireBug để chơi và xem những gì hiệu quả. –

0

Tôi đã có một vấn đề tương tự mà tôi cố định với chỉ số z trên fieldsets

Nếu bạn có

<fieldset> some content... including ajax popup </fieldset> 
<fieldset> some more content </fieldset> 

thì ajax sổ popup hiện lên bên dưới fieldset thứ hai, để sửa chữa thiết lập z-index trên trường đầu tiên cao hơn giá trị thứ hai, ví dụ như dưới đây.

<fieldset style="z-index: 2;"> some content... including ajax popup </fieldset> 
<fieldset style="z-index: 1;"> some more content </fieldset> 
3

Các chỉ cách tôi đã tìm thấy để giải quyết vấn đề trong IE7 là để thêm một số CSS để trang tôi đã gặp vấn đề với.Không có số lượng z-indexing hoặc div gói và tái tạo kiểu đã có hiệu lực.

Các thay đổi sau đây kiểm soát bối cảnh xếp chồng.

.ajax__calendar_container 
{ 
    position:static; 
} 

Điều này dẫn đến cửa sổ lịch xuất hiện theo chiều dọc trên điều khiển bộ mở rộng thay vì theo chiều dọc dưới mức bình thường. Đối với tôi đó là chấp nhận được.

0

Nếu những câu trả lời không làm việc đúng cách nó có thể là một vấn đề với ẩn tràn. Điều này có thể được giải quyết bằng cách sử dụng css sau đây:

.ajax__scroll_none { 
    overflow: visible !important; 
    z-index: 10000 !important; 
} 
Các vấn đề liên quan