如果输入字段定义为ClientIDMode =“Static”

时间:2017-01-03 13:03:05

标签: c# asp.net webforms

我将webform上的输入控件定义为

 <input type="text" id="Amount1" class="auto-sum"  ClientIDMode="Static" runat="server">

并且在运行时它显示如下。

<input name="ctl00$ContentPlaceHolder1$Amount1" id="Amount1" class="auto-sum" type="text">

当我尝试从CodeBehind获取值时,我可以看到控件名称

我得不到金额。如何获得这样的输入字段的值

2 个答案:

答案 0 :(得分:0)

你可以试试这个

TextBox1.Text = Amount1.Value

答案 1 :(得分:0)

我建议不要使用ClientIDMode="Static"。这可能会在以后引起问题。特别是因为您似乎正在使用ContentPlaceHolder,这表示母版页。

请考虑以下事项。您可以在母版页上添加带有静态ID的TextBox1,稍后您会在使用母版页的页面上执行相同操作。您现在在页面上有两个标识为TextBox1的元素,而不是ctl00$TextBox1ctl00$ContentPlaceHolder1$TextBox1

如果您出于客户端目的需要,可以随时使用TextBox1.ClientID

<asp:TextBox ID="Amount1" runat="server" CssClass="auto-sum"></asp:TextBox>

<script type="text/javascript">
    document.getElementById("<%= Amount1.ClientID %>").value = "It works!";
</script>