如何从Asp.Net传递JavaScript的价值

时间:2016-07-19 21:12:08

标签: javascript c# asp.net

如何在我的TextBox中写x和y,我写这个但不是Work

 <script language="javascript" type="text/javaScript">
     function PantallaResolucion()
     {
         var x = screen.width.toString();
         var y = screen.height.toString();
         var xx = document.getElementById("HiddenField1");
         var yy = document.getElementById("HiddenField2");
         xx.value = x;
         yy.value = y;
     }
</script>

我的asp.net代码

<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server"  />

C#代码

protected void Page_Load(object sender, EventArgs e)
{
    string c = "<script language='javascript'> PantallaResolucion(); </script> ";
    ClientScript.RegisterStartupScript(this.GetType(), "PantallaResolucion();", c);
    TextBox1.Text = HiddenField1.Value.ToString() + "x" + HiddenField2.Value.ToString();// NOT WORK**
}

2 个答案:

答案 0 :(得分:2)

您可以尝试以下方法:

var xx = document.getElementById("<%= HiddenField1.ClientID%>");
var yy = document.getElementById("<%= HiddenField2.ClientID%>");

您可以查看here以查看有关为何需要这样做的详细说明。根据这个链接,用几句话说:

  

当Web服务器控件呈现为HTML元素时,id   HTML元素的属性设置为ClientID的值   属性。 ClientID值通常用于访问HTML元素   在客户端脚本中使用document.getElementById方法。

对整个问题采取更明确的方法如下:

将此脚本放在页面底部,在结束标记</body>

之前
<script>
    function PantallaResolucion(){
        var width = screen.width.toString();
        var height = screen.height.toString();
        var hiddenFld1 = document.getElementById("<%= HiddenField1.ClientID%>");
        var hiddenFld2 = document.getElementById("<%= HiddenField2.ClientID%>");
        hiddenFld1.value = width;
        hiddenFld2.value = height;
        var textBox1 = document.getElemenetById("<%=TextBox1.ClientID%>");  
        textBox1.value =  hiddenFld1.value + "x" + hiddenFld2.value;
    }
</script>

然后清除Page_Load方法中的语句。 顺便说一下,我认为没有理由拥有这两个隐藏的输入。您可以删除它们并对上述脚本进行相应的更改。

答案 1 :(得分:1)

好的,不需要服务器端逻辑。你可以在客户端做所有事情:

<script language="javascript" type="text/javaScript">
    var text = document.getElementById("<%= TextBox1.ClientID%>"); 
    var x = screen.width.toString();
    var y = screen.height.toString();
    text.value = x + ' ' + y;
</script>

我相信这就是你想要的