获取屏幕宽度并将其传递给ASP控件

时间:2015-05-15 03:15:52

标签: javascript jquery html asp.net linechart

我无法相信我花了3个小时才找到解决方案。它看起来很简单,但这是不可能的。

我使用ASP控件(LineChart),我想设置图表的宽度与页面加载时的屏幕尺寸相同。

所以这些是我做过的一些方法,但都失败了。我不确定它值得一提,但如果你愿意,可以跳到#4:

  1. 我知道我们无法从后面的代码中获取屏幕大小,所以我创建了2个隐藏字段来存储屏幕宽度和屏幕高度。我从Javascript获取屏幕分辨率并将其传递给document.ready中的隐藏字段值,并在Page_Load(代码隐藏)中读取隐藏字段的值。到现在为止还挺好。但是有一个问题,page_load总是在Javascript之前首先呈现;因此,我的隐藏字段的值总是返回null。
  2. Javsscript:

    $(document).ready(function () {
         width = $(window).width();
         height = $(window).height();
         document.getElementById('ContentPlaceHolder1_hfWidth').value = width;
         document.getElementById('ContentPlaceHolder1_hfHeight').value = height;
    });
    

    代码背后:

    LineChart1.ChartWidth = hfWidth.Value;
    LineChart1.ChartHeight = hfHeight.Value;
    
    1. 我从后面的代码调用Javascript,也没有工作。因为找不到隐藏字段控件。

    2. 我创建了2个隐藏字段和1个隐藏按钮。在Page_Load没有任何功能,我将这些功能移到另一个函数调用getScreenSize(),我在document.ready触发按钮单击。单击按钮,我能够获得屏幕大小,但它会导致无限回发。 (按钮一次又一次地点击触发器)

    3. 现在我在想,无论如何我们可以直接从Javascript获取价值到HTML吗?这是我仍在使用的代码/想法,请建议我。

    4. 使用Javascript:

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

      HTML:

      <cc1:LineChart ID="LineChart1" runat="server" ChartWidth='<%#Bind("screenWidth") %>' ChartType="Basic" >
      </cc1:LineChart>
      

0 个答案:

没有答案