2011-03-26 51 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