我已编写此值以显示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();
}
}
答案 0 :(得分:0)
我认为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>
答案 1 :(得分:0)
首先,你将TextBoox4作为“ReadOnly = True”,所以我假设您在代码中的Textbox4中设置了值,但这样做不会触发OnTextChanged事件。它只会在你输入文本时触发OnTextChanged事件,然后像Sudhakar所说的那样离开控件。
我尝试通过从TextBox4中删除ReadOnly属性并在其中键入数字来尝试代码,并在离开控件时触发txt4_TextChanged事件并在TextBox5中设置值。