调用page_load表单jquery ajax客户端

时间:2013-01-10 14:06:21

标签: asp.net jquery postback

我需要在服务器端获得用户屏幕分辨率,并根据分辨率调整控件大小。

我有asp:HiddenField我希望存储分辨率。

<asp:HiddenField runat="server" ID="hdnScreenResolution" />

我有提交解决方案的jquery ajax调用:

 $(document).ready(function () {
      width = screen.width;
      height = screen.height;
      $.ajax({
         url: "Questionnaire.aspx/WindowResolutionSet",
         data: "{ 'width': '" + width + "', 'height' : '" + height + "'}",
         type: "POST",
         contentType: "application/json; charset=utf-8",
         sucess: function (msg) { alert("it works"); },
         error: function () { alert("error"); }
     });
 });

和它的网络方法:

    [WebMethod]
    public static bool WindowResolutionSet(string width, string height)
    {
        return true;
    }

从WindowResolutionSet我无法访问页面上的服务器控件。

并且sucess: function (msg) { alert("it works");无法触发。

我想在width上填充heightsucess,然后从Page_Load()访问它,但sucess不会触发。 error也没有执行。

必须有更高效的方式,但我不知道= /

1 个答案:

答案 0 :(得分:3)

可以使用HttpCapabilitiesBase.ScreenPixelsWidthHttpCapabilitiesBase.ScreenPixelsHeight直接访问这些值。

示例:

 var clientSize = new { 
      X = Page.Request.Browser.ScreenPixelWidth, 
      Y = Page.Request.Browser.ScreenPixelHeight
      };
 SomeMethod(clientSize.X, clientSize.Y);