2013-01-23 101 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'值。