2013-01-23 100 views
0

我想在客戶端屏幕大小加載頁面時設置數據網格的大小。有什麼辦法可以在頁面加載或服務器端的其他頁面事件中獲得此大小?通過客戶端屏幕大小調整網格大小

我使用Request.Browser.ScreenPixelsWidthRequest.Browser.ScreenPixelsHeight但這些大小是不正確的。這些尺寸始終爲640 * 480.

+0

您可以使用百分比大小嗎?嘗試將寬度高度設置爲百分比,並在調整瀏覽器窗口大小時查看它是否調整大小。 – mortb

+0

@mortb:這是不可能的; –

回答

0

您可以使用Javascript獲取視口的寬度和高度。然後通過隱藏表單輸入或ajax將值傳回。

var width = $(window).width(); 
var height = $(window).height(); 

首先,添加這些隱藏的表單輸入來存儲寬度和高度,直到回發。

<asp:HiddenField ID="width" runat="server" /> 
<asp:HiddenField ID="height" runat="server" /> 

接下來我們要獲取窗口(視口)的寬度和高度。 JQuery有兩個方法,正確命名爲width()和height()。

將以下代碼添加到head元素中的.aspx文件中。

<script type="text/javascript"> 
$(document).ready(function() { 

    $("#width").val() = $(window).width(); 
    $("#height").val() = $(window).height();  

}); 
</script> 

這將導致瀏覽器窗口的寬度和高度在回發時可用。剛剛訪問隱藏的表單輸入這樣的:

var TheBrowserWidth = width.Value; 
var TheBrowserHeight = height.Value; 

我希望它可能會幫助你....

+0

我需要這些尺寸的頁面事件之一,但您的解決方案不適合我。 –

+0

您是否需要在客戶端或服務器端事件中調整大小? – mortb

+0

我需要調整服務器大小。 –

1

Request.Browser.ScreenPixelsWidthRequest.Browser.ScreenPixelsHeight不能給服務器端的客戶端的屏幕分辨率。

得到最好的方法是使用Javascript成爲

<%if (!this.IsPostBack) 
{%> 
<script language="javascript" type="text/javascript"> 
var rowURL = window.location.href; 
var screenWidth = window.screen.availWidth; 
if (rowURL.indexOf("screen_width") == -1) 
window.location.href = window.location.href + "?screen_width=" + screenWidth; 
</script> 
<%}%> 

使用這個腳本在頁面的「體」的標籤。 它只是將'screen_width'參數附加到查詢字符串並刷新頁面。 通過這種方式,您可以從查詢字符串中獲取服務器端的'screen_width'值。