日期:2014-05-17  浏览次数:21066 次

asp.NET 怎样给TextBox添加onkeyup事件并用来调用类(.cs)中方法
页面
test.aspx
<body>
    <form id="form1" runat="server">
    <asp:TextBox ID="runTimeTxB" runat="server"></asp:TextBox>
    <asp:TextBox ID="shutDownTimeTxB" runat="server"></asp:TextBox>
    <!--根据前面2个TextBox框输入的值,自动计算停机率并赋值第三个TextBox-->
    <asp:TextBox ID="shutdownRateTxB" runat="server" ></asp:TextBox>  
    </form>
</body>
类文件
test.cs
         //加载页面
 protected void Page_Load(object sender, EventArgs e)
        {
            runTimeTxB.Attributes.Add("onkeyup", "calcShutdownRate();");
            runTimeTxB.Attributes["onkeyup"] = "calcShutdownRate();";
            
        }
        //计算停机率
        private void calcShutdownRate()
        {
                Double x = Convert.ToDouble(runTimeTxB.Text == "" ? "0" : runTimeTxB.Text);
                Double y = Convert.ToDouble(shutDownTimeTxB.Text == "" ? "0" : shutDownTimeTxB.Text);
                Double result = 0;
                if (x != 0 && y != 0)
                    result = Math.Round(y / (x + y) * 100, 2);
                shutdownRateTxB.Text = result.ToString();
        }

我需要在页面前台实现TextBox间联动赋值,但是不想用JS,要通过onkeyup来调用类文件.cs中某函数,本来OnTextChanged可以实现,但是OnTextChanged反应不灵敏(需失去焦点才触发)。
所以请问该怎么实现?以上代码执行总报错——calcShutdownRate()未定义
请高手附可执行的详细代码,谢谢
textbox asp.net onkeyup

------解决方案--------------------
onkeyup="calcRate(“+ runTimeTxB.ClientID + "," +  shutDownTimeTxB.ClientID + "," + shutdownRateTxB.ClientID : ")" 
不然你的js找不到对象的。