如何从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**
}
您可以尝试以下操作:
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>
我相信这就是你想要的