-
04-03-2015, 12:53 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cách lấy kích thước trình duyệt trong code behind?
Web hiển thị: màn hình máy tính, màn hình Tivi, điện thoại, ... trình duyệt web của nó có độ phân giải khác nhau.
Trong Page Load mình viết code lấy dữ liệu từ database lên và bỏ chúng vào thẻ MARQUEE để cho chữ chạy từ dưới lên.
Mã:var sb = new StringBuilder(); var dt = bll.DanhSachHienTai_TheoKhuVuc(new KhuVuc(IDKhuVuc)); sb.Append("<marquee direction=up behavior=scroll scrollamount=2 id='myMarquee' >"); foreach (DataRow row in dt.Rows) { sb.Append("<div sb.Append(row[FieldName.TenBanTin].ToString().ToUpper()); sb.Append("</div>"); sb.Append(row[FieldName.NoiDung].ToString().ToUpper()); sb.Append("<hr />"); } sb.Append("</marquee>"); divNoiDung.InnerHtml = sb.ToString();
(Vì có phần footer nên height marquee mình ko để auto được).
Có cách nào set height marquee trong code behind theo từng loại thiết bị?
Mình có các cách như sau như thất bại:
1. Lấy kích thước màn hình bằng javascript, sau đó trong PageLoad lấy giá trị:
Mã:<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> <script type="text/javascript"> function getMarqueeHeight() { debugger; var height = window.innerHeight || document.documentElement.clientHeight; document.getElementById("hiddenHeight").value = height; } </script> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="contentBanTin" runat="server"> <asp:HiddenField ID="hiddenHeight" runat="server" /> <div id="divNoiDung" runat="server"> </div> <div id="divNote" runat="server"></div> </asp:Content>
2. set height marquee trong javascript luôn:
Mã:<script type="text/javascript"> function setMarqueeHeight() { debugger; var height = window.innerHeight || document.documentElement.clientHeight; var marquee = document.getElementById("myMarquee"); marquee.setAttribute("height", height); } </script>
View more random threads:
- Hiển thị thời gian trên web
- Lỗi Ajax Control Toolkit 3.5 (mình sử dụng Framework 3.5, VS2008)
- Trong textbox có dấu ' hoặc " thì lưu không được.
- Cách hiển thị file PDF ngay trên web ASP.NET?
- Lấy ID linkbutton từ code behind??
- Cách chuyển code từ PHP sang ASP.NET như thế nào ?
- Lấy ID từ Row trong GridView ASP.NET?
- Cách gọi phương thức từ file Default.cs?
- load 1 phần của trang web như thế nào?
- cách nào để tạo nhiều đồng hồ chạy ngược giống nhóm mua?
-
04-03-2015, 01:32 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
@nth4 Mình đã đọc lại câu hỏi của bạn nhiều lần, nhưng vẫn chưa thật sự biết bạn đang nói về vấn đề gì.
Thứ nhất: Bạn nói "màn hình Tivi" rồi lại "trình duyệt web của nó"?
Thứ hai: Bạn nói có thứ gì đó nó hiển thị vừa với màn hình Tivi, nhưng không vừa đối với màn hình máy tính. Vậy cho hỏi: Kích thước của cả 2 màn hình đó có bằng nhau không? Nếu khác nhau, vậy chẳng có vấn đề gì xảy ra cả.
Tóm lại: Nếu ý của bạn là "Làm thế nào để 1 trang web tự động resize kích thước của nó cho vừa vặn với trình duyệt yêu cầu load nó trên từng thiết bị?" thì rất đơn giản, set mấy cái margin-top, margin-left... padding-top, padding-left... những thứ liên quan đến kích cỡ được dùng trong CSS và CSS3.
Thiết lập giá trị cho chúng là % (percentage) thay vì giá trị cố định (pixel).
-
04-03-2015, 02:19 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Từ khóa dành cho chủ thớt là "Responsive design".
-
05-03-2015, 12:07 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi villbe
1 số smart Tivi hiển thị đúng kích thước mặc định. 1 số smart Tivi có không hiển thị đúng kích thước, do độ phân giản màn hình thấp hơn.
Mình sử dụng Javascript để lấy kích thước của trình duyệt web của Smart Tivi. Trong Page Load mình muốn lấy dữ liệu đó. Nhưng Page Load chạy trc Javascript nên ko thể lấy được kích thước của màn hình.
-
05-03-2015, 03:56 PM #5Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thế này nhé: Browser không có kích thước mặc định, và cũng như việc bạn không thể code lấy được giá trị của Browser size.
Kích thước mà bạn đang nhắc tới là chiều cao x rộng (độ phân giải) của màn hình hiển thị, không phải của Browser.
Bạn vẫn chưa nói rõ việc dùng "smart Tivi" để duyệt website của chính bạn viết, hay là đối với tất cả website.
Nếu là website do bạn tự viết thì mình có 1 ví dụ đề xuất nho nhỏ để bạn tham khảo.
Code html:
Mã:<!DOCTYPE html><html><head><style>div{ width: 80%; /* Dòng này thiết lập độ rộng của div luôn ở mức 80%, bất kể độ phân giải là bao nhiêu */ margin-left: 10%; /* Dòng này nói rằng div sẽ cách xa lề bên trái 10% */ margin-right: 10%; /* Dòng này div cách lề phải 10% */ margin-top: 5%; /* Cách lề bên trên 5% kích thước */ margin-bottom: 5%; /* Cách lề dưới cùng 5% kích thước */ padding-left: 10%; /* Dòng này thiết lập cách dòng chữ bên trong thẻ div cách lề trái của thẻ div 10% */ padding-right: 10%; /* Chữ trong thẻ div cách lề phải của thẻ div 10% */ padding-top: 3%; /* Cách lề bên trên 3% */ padding-bottom: 2%; /* Cách lề dưới cùng 2% */}</style></head> <body> <div> Hello World! </div></body></html>
Trong ví dụ trên, dòng chữ "Hello World!" nằm trong cặp thẻ <div> ở phần <body>.
Khi hiển thị, <div> sẽ kiêm các công việc như sau:
1. Độ rộng là 80% của Browser, cách lề trái và lề phải mỗi bên là 10% kích thước.
2. Cách đều lề trên cùng và dưới cùng, mỗi phần là 5% kích thước (chiều cao) của Browser.
3. Dòng chữ "Hello World!" cách xa lề trái + phải của thẻ <div> mỗi bên là 10%. Tức là cách xa lề trái + phải của Browser mỗi bên là 20%.
4. Dòng chữ cách lề bên trên của thẻ <div> là 3%. Tương đương khoảng cách 5% + 3% = 8% so với lề trên của Browser.
5. Tương tự, dòng chữ cách lề dưới của thẻ <div> là 2%.
Ví dụ: Chiều rộng của độ phân giải là 1024, thì 80% tức là 80% của 1024. Nếu là 1366 thì là 80% của 1366. Không cần biết nó là bao nhiêu, bạn vẫn lấy được giá trị chính xác là 80% gốc.
Nếu bạn muốn mỗi 1 thẻ <div> có 1 định dạng kích thước hiển thị khác nhau, thì phải đặt id cho từng thẻ, khi viết trong phần <body>, Browser tự động biết điều chỉnh dựa vào id đó.
Trên là ví dụ cơ bản, mình gắn nó trực tiếp vào trong code HTML, nhưng đối với ASP, bạn nên tách nó ra, viết trong file style.css, rồi add vào trong cặp thẻ <head>
-
06-03-2015, 05:34 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bài viết của bác rất hay
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...