我编写了这个值来显示textbox5值,但是它没有显示这个文本框的值。
哪里的问题我找不到,它只显示空白。
设计规范:
<p class="style1"> Formulated : <asp:TextBox ID="TextBox4" runat="server"
AutoPostBack="True" ReadOnly="True" OnTextChanged="txt4_TextChanged"
BackColor="White" Font-Bold="True" Font-Size="Small" ForeColor="Black">
</asp:TextBox>
</p> <p class="style1"> Peice : <asp:TextBox ID="TextBox5" runat="server"
AutoPostBack="True" ForeColor="Black" ReadOnly="True"></asp:TextBox>代码背后:
protected void txt4_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(TextBox4.Text))
{
TextBox5.Text = ((Convert.ToDouble(TextBox4.Text)) * 8).ToString();
}
}发布于 2013-12-08 09:20:15
我认为TextBox作为Web服务器控件不会在用户每次输入击键时引发事件,如果用户离开该控件,则只会触发一次。
因此,TextChanged事件在leave控件时触发。
解决方案:
因此,您需要使用Javascript来为每个键按下调用服务器端代码来处理关键事件。
尝试如下:下面的设计代码帮助您为每个键按下运行事件。
设计规范:
<script type="text/javascript">
function RefreshPage() {
__doPostBack('<%= TextBox4.ClientID %>', '');
};
</script>
<p class="style1"> Formulated : <asp:TextBox ID="TextBox4"
onkeyup="RefreshPage();" runat="server"
AutoPostBack="True" ReadOnly="True" OnTextChanged="txt4_TextChanged"
BackColor="White" Font-Bold="True" Font-Size="Small" ForeColor="Black">
</asp:TextBox>
</p> <p class="style1"> Peice : <asp:TextBox ID="TextBox5" runat="server"
AutoPostBack="True" ForeColor="Black" ReadOnly="True"></asp:TextBox>发布于 2013-12-08 22:10:52
首先,您将TextBoox4设置为"ReadOnly=True“,因此我假设您在代码后面的Textbox4中设置了值,但这样做不会触发OnTextChanged事件。只有当您输入文本,然后像Sudhakar所说的离开控件时,它才会触发OnTextChanged事件。
我尝试从ReadOnly属性中删除TextBox4属性并在其中键入一个数字,然后在离开控件时触发txt4_TextChanged事件,并在TextBox5中设置值。
https://stackoverflow.com/questions/20451560
复制相似问题