2011-03-26 109 views
0

HI,自动乘法两个列中的GridView

我需要计算两个textboxex的值在GridView和在第三文本框用javascript只要在第二个文本框的输入值显示结果。

我的文本框字段为:数量和价格 结果应以总计显示。

即(Total)Value = Quantity * Rate。

我已经试过了, 后面的代码:C#

protected void gvPOItms__RowCreated(Object sender, GridViewRowEventArgs e) 
{ 
    try 
    {    
     TextBox txt1 = (TextBox)e.Row.FindControl("txtQty"); 
     TextBox txt2 = (TextBox)e.Row.FindControl("txtRate"); 
     TextBox txt3 = (TextBox)e.Row.FindControl("txtValue"); 

     txt1.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')"; 
     txt2.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')"; 
    } 
    catch (Exception ex) 
    { 
     Response.Write(ex); 
    } 
} 

JAVASCRIPT:

<Script type="text/javascript"> 
function multiplication(tx1,txt2,txt3) 
     { 
     //Your logic for multiplication 
     var Qty=document.getElementById(txt1).value; 
     var Rate=document.getElementById(txt2).value; 
     document.getElementById(txt3).value=Qty*Rate;  
     } 
    </script> 

标记页:

但是,我无法得到答案,它不扔任何错误。

有人可以告诉我什么是错?

+0

你可以帮助我们通过提供活生生的例子,例如,http://jsfiddle.net/ – bluefoot 2011-03-26 11:13:32

回答

2

你应该改变字符串为int乘法:)

之前(任何文本框的值返回字符串)试试这个: -

txt1.Attributes["onKeyup"] = "javascript: return multiplication('" + Convert.ToInt32(txt1.Text) + "','" + Convert.ToInt32(txt2.Text) + "','" + Convert.ToInt32(txt3.ClientID) + "')"; 
txt2.Attributes["onKeyup"] = "javascript: return multiplication('" + Convert.ToInt32(txt1.Text) + "','" + Convert.ToInt32(txt2.Text) + "','" + Convert.ToInt32(txt3.ClientID) + "')"; 

在脚本: -

<Script type="text/javascript"> 
function multiplication(Qty,Rate,txt3) 
    { 
    //Your logic for multiplication 

    document.getElementById(txt3).value=Qty*Rate;  
    } 
</script> 
+0

喜Anukush罗伊,感谢您的好建议..我刚刚发现它工作正常....并对不起后期亲密....... – 2011-04-01 11:30:26

0

的问题在于用这些代码行

txt1.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')"; 
txt2.Attributes["onKeyup"] = "javascript: return multiplication('" + txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')"; 

使用添加方法,而不是

txt1.Attributes.Add("onKeyup", "javascript: return multiplication('" + 
    txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')"); 
txt2.Attributes.Add("onKeyup", "javascript: return multiplication('" + 
    txt1.ClientID + "','" + txt2.ClientID + "','" + txt3.ClientID + "')"); 

,也做在JavaScript parseInt()

var Qty = parseInt(document.getElementById(txt1).value); 
var Rate = parseInt(document.getElementById(txt2).value); 
+0

嗨... waqas raja ...其工作正常...... ..对于后期的亲密感 – 2011-04-01 11:29:41