クライアントの画面サイズでページ読み込み時のデータグリッドのサイズを設定したい。サーバー側でページの読み込みやその他のページ イベントでこのサイズを取得する方法はありますか?
と を使用Request.Browser.ScreenPixelsWidth
しますRequest.Browser.ScreenPixelsHeight
が、これらのサイズは正しくありません。これらのサイズは常に 640 * 480 です。
Request.Browser.ScreenPixelsWidth
サーバー側でRequest.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」の値を取得できます。
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() の 2 つのメソッドがあります。
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;
お役に立てば幸いです....