按客户端屏幕大小调整网格大小

时间:2013-01-23 07:47:18

标签: c# asp.net datagrid client screen

我想在页面加载时按客户端屏幕大小设置datagrid的大小。有没有办法在页面加载或服务器端的其他页面事件中获得此大小?

我使用Request.Browser.ScreenPixelsWidthRequest.Browser.ScreenPixelsHeight,但这些尺寸并非如此。这些尺寸总是640 * 480。

2 个答案:

答案 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>
<%}%>

在页面的“body”标签中使用此脚本。 它只是将'screen_width'参数附加到查询字符串并刷新页面。 通过这种方式,您可以从查询字符串中获取服务器端的“screen_width”值。

答案 1 :(得分: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;

我希望它可以帮助你......