日期:2014-05-18  浏览次数:20500 次

求助!如何实现textbox之间的值修改互相绑定?
先上代码:
C# code

protected void TextBoxTime1_TextChanged(object sender, EventArgs e)
        {
            int time1 = Convert.ToInt32(TextBoxTime1.Text);
            int week1 = Convert.ToInt32(TextBoxWeeks1.Text);
            double y1 = Convert.ToDouble(TextBoxY1.Text);
            double statime1 = time1 * week1 * y1;
            TextBoxStaTime1.Text = Convert.ToString(statime1);
        }



我想这样:

通过在一个文本框中输入一个新值,回车,然后后台就读取新值,和另外两个文本框之中的值相互进行一个运算,得到的结果再放到第四个文本框里。这时候,第一个文本框和第四个文本框的值都变成新的值。

奇怪的是上面的代码完全没用,输入新值,回车,新值变回旧的值,其他什么都没改变....请问我哪里做错了?应该如何改?哪位大大帮帮我?

------解决方案--------------------
是不是没有设置TextBoxTime1文本框的AutoPostBack=true啊,没设的话后台事件不起作用。
------解决方案--------------------
应该只能有两种思路吧
客户端:js来弄
客户端+服务器:ajax或服务器事件
------解决方案--------------------
TextChanged是文本改变且失去焦点时发生,你输入按tab键试试,不然就是你代码有问题。
------解决方案--------------------
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{

if (e.KeyValue == 13)
{
int time1 = Convert.ToInt32(textBox1.Text);
int week1 = Convert.ToInt32(textBox2.Text);
double y1 = Convert.ToDouble(textBox3.Text);
double statime1 = time1 * week1 * y1;
textBox4.Text = Convert.ToString(statime1);

}
------解决方案--------------------
建议用JS
用文本框的onblur事件,当第一个文本框失去焦点时,计算值放到第四个文本框中去.
------解决方案--------------------
C# code

<asp:TextBox runat="server" ID="TextBoxTime1" Width="100px" onTextChanged="TextBoxTime1_TextChanged1"[color=#FF0000] AutoPostBack="true"[/color]></asp:TextBox>

------解决方案--------------------
+1
探讨

是不是没有设置TextBoxTime1文本框的AutoPostBack=true啊,没设的话后台事件不起作用。