在主页加载之前,我需要来自javascript的值,然后想在代码中使用该值



我需要在主页加载之前从javascript中获取一个值,然后想在代码中使用该值。我为此目的使用的代码是:

我已经做了一个测试.aspx页面。其代码如下:-

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title> <script type="text/javascript" language="javascript">   
function GetScreenHeightAndWidth()
 {   
        var width = screen.width;   
        var height = screen.height;
        var object = 'Label1';
document.getElementById(object ).innerHTML=height ;
//alert(height);
'<%Session["Screensize"] = "' + height +'"; %>' ;
    }   
    </script>  
</head>
<body onload="GetScreenHeightAndWidth();" >
    <form id="form1" runat="server">
    <div>
    <asp:Label ID="Label1" runat="server" Text="test"></asp:Label>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    </form>
</body>
</html>

测试.aspx.cs页面的代码如下:-

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Windows.Forms;
public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Session["Screensize"] = Label1.Text;
        TextBox1.Text=Session["Screensize"].ToString();
    }
}

结果如下:-

768测试

而结果我需要的是 768 和 768。

有什么办法可以解决这个问题吗?

你问的是不可能的。为什么首先需要知道服务器端的屏幕尺寸?无论你需要适应服务器生成的html,都可以通过适当的CSS规则或Javascript进行调整(如果你喜欢那个框架,JQuery)

如果将宽度/高度值设置为脚本中的隐藏字段,则可以在回发后从代码隐藏访问它们。标签不与表单一起发布,因此您不能使用它。

首先感谢大家回答我的问题。经过多次搜索,我找到了我真正想要的东西。为此,我必须再使用一个页面并在我的原始代码中添加此代码:

if (!IsPostBack)
        {
            if (Session["ScreenResolution"] == null)
            {
                Response.Redirect("detectscreen.aspx");
            }
            else
            {
                Session["Screensize"] = Session["ScreenResolution"].ToString();
            }

            TextBox1.Text = Session["Screensize"].ToString();
        }

新页面的代码是:

 protected void Page_Load(object sender, EventArgs e)
    {
         if (Request.QueryString["action"] != null) {
            Session["ScreenResolution"] = Request.QueryString["res"].ToString();
            Response.Redirect("Catalogue.aspx");
        }
    }

新页面中的脚本将如下所示:

 <script language="javascript" type="text/javascript">
    res = "&res="+screen.height
    top.location.href="detectscreen.aspx?action=set"+res
</script>

相关内容

最新更新