出于某种原因,如果文本框设置为只读,它似乎不会发生。
我认为可以通过向用户显示一个可编辑的文本框,捕捉到它的击键,并更新一个对用户隐藏的只读文本框来解决问题。
仍然有点混乱,但我不能回滚到 May 的版本,因为在那个版本中我需要避免 ComboBox 的另一个错误!
更新:
作为背景知识,我的模式弹出窗口中有一个用户控件(ascx),因为我需要重用它。ascx 必须自己处理用户的输入(包含页面不知道控件内部发生了什么),因此当用户单击按钮时,我会执行回调并处理数据。如果成功的结果返回给客户端回调函数,那么我模拟单击包含页面认为的“确定”按钮,该按钮实际上对用户是不可见的。
我已经更改了我的代码以添加一个隐藏的只读文本框,并在每次文本更改时将文本从原始文本框中复制到新文本框中。
<asp:TextBox runat="server" ID="txtName"></asp:TextBox>
变成
<asp:TextBox runat="server" ID="txtName" onchange="document.getElementById(this.id + 'RO').value = this.value"></asp:TextBox>
<asp:TextBox runat="server" ID="txtNameRO" ReadOnly="true" style="display:none;"></asp:TextBox>
然后在回调中传回值而不是获取 txtName 的值时,我使用 txtNameRO。
如果您要进行回发,我认为这不会有帮助,但是您可以像我一样在回发之前添加一个回调。希望这无论如何都会对某人有所帮助!