如何从Asp.Net为JavaScript传递值

本文关键字:JavaScript Net Asp | 更新日期: 2023-09-27 17:57:48

如何在我的TextBox中写x和y,我写了这个但不能工作

 <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**
}

如何从Asp.Net为JavaScript传递值

您可以尝试以下操作:

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

你可以在这里看到一个非常详细的解释,为什么需要这样做。根据这个链接,用几个字来说:

当Web服务器控件呈现为HTML元素时,idHTML元素的属性设置为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方法中的语句顺便说一句,我看不出有任何理由拥有这两个隐藏的输入。您可以删除它们,并对上面的脚本进行相应的更改。

好的,不需要服务器端逻辑。您可以在客户端完成所有操作:

<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>

我相信这就是你想要的