我在Page-load中设置文本框的值,并将其分配给java脚本中的变量。但这条线不会执行。
y = document.getElementByID("<%= TextBox1.ClientID %>").value;
当我在aspx页面中设置文本框的值时,它不会工作。
protected void Page_Load(object sender, EventArgs e) {
TextBox1.Text = "14";
}
和
<asp:TextBox ID="TextBox1" runat="server" Text="14"></asp:TextBox>
他们都没有工作 --------这是脚本-----
<script type="text/javascript">
var map;
var y;
y = document.getElementByID("<%= TextBox1.ClientID %>").value;
y = parseInt(y);
require(["esri/map", "dojo/domReady!"], function (Map) {
esriConfig.defaults.map.panDuration = 1;
var map = new Map("map", {
center: [-118, y],
zoom: 15,
basemap: "satellite"
});
});
</script>
我在做错了什么?当我将y分配给一个数字时,一切正常,这是从asp控件获取值的一个好习惯吗?
答案 0 :(得分:1)
"<%= TextBox1.ClientID %>"
这不会像你想象的那样得到评估,它只是将它作为文字字符串发送给客户端。相反,你应该这样做:
y = document.getElementByID("'" + <%= TextBox1.ClientID %> "'").value;
即便如此,这是非常难看的代码。由于文本框似乎不是动态生成的控件,因此您应将其ClientIDMode
属性设置为Static
或Predictable
。然后在您的javascript中对ID进行硬编码。