document.getElementById('txtnumber').onchange=function(){
if(this.value!=""){
_doPostBack('txtNumber',this.value);
}
}
然后,您可以使用 Request["__EVENTARGUMENT"] 条目检索该值。另外,请确保关闭 AutoPostback。
编辑:在您的 txtNumber_TextChanged 处理程序中,例如:
private void txtNumber_TextChanged handler
{
Response.Write(Request["__EVENTARGUMENT"]);
//Writes the value of the TextBox. Basically, EVENTARGUMENT is the second argument passed when calling _doPostBack
}
请注意,这完全是可选的,因为您仍然可以使用 txtNumber 对象访问 txtNumber 的值(与传统一样)。
编辑:请注意,当使用 document.getElementById 检索对元素的引用时,您需要将客户端 ID 作为参数传递。例如,如果 txtNumber 对象位于名为 FormView1 的 FormView 中,则生成的客户端 ID 将为 FormView1_txtNumber。对您的代码进行以下修改之一应该可以解决此问题:
1)如果您的javascript在aspx页面上的脚本标签中,只需修改document.getElementById('txtNumber')
为document.getElementById('<%= txtNumber.ClientID %>')
2) 如果您使用的是外部 js 文件,请在调用 js 文件之前更改document.getElementById('txtNumber')
为document.getElementById(txtNumberClientID)
并在您的 aspx 页面中插入以下脚本标记:
<script type="text/javascript">
window.txtNumberClientID='<%= txtNumber.ClientID %>';
</script>
让我知道这个是否奏效