为什么不显示文本框值?

时间:2013-12-08 08:57:43

标签: c# asp.net textbox dataset

我已编写此值以显示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();
        }
    }

2 个答案:

答案 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中设置值。