DataGrid中有3个模版列 1.数量(文本框) 2.单价(文本框) 3.金额(文本框)
编辑的时候怎样在输入数量列后
敲回车定位到单价列,
再敲回车,把数量*单价的值赋给金额列里面
同时页面不能刷新。wangrenda(浪人),你给我的回复我看过了,
<script language="javascript">
function DoCal()
{
var e = event.srcElement;
var row = e.parentNode.parentNode;
var txts = row.all.tags("INPUT");
if (!txts.length || txts.length < 3)
return;var q = txts[txts.length-3].value;
var p = txts[txts.length-2].value;if (isNaN(q) || isNaN(p))
return;q = parseInt(q);
p = parseFloat(p);txts[txts.length-1].value = (q * p).toFixed(2);
}
</script>
但我取出来的txts.length 老是等于1,明明模版列里面有3个文本框的啊
<asp:TemplateColumn>
     <ItemTemplate>
<asp:TextBox id=txt1 onkeyup=javascript:DoCal() runat="server" 
            Text='<%# DataBinder.Eval(Container, "DataItem.text1") %>' > </asp:TextBox>
     </ItemTemplate>
     </asp:TemplateColumn>     <asp:TemplateColumn>
         <ItemTemplate>     <asp:TextBox id=txt2 onkeyup=javascript:DoCal() runat="server"  
              Text='<%# DataBinder.Eval(Container, "DataItem.text2") %>'>
</asp:TextBox>
     </ItemTemplate>
     </asp:TemplateColumn>
     <asp:TemplateColumn>
 <ItemTemplate>     <asp:TextBox id=txt3 runat="server"  
                  Text='<%# DataBinder.Eval(Container, "DataItem.text3") %>'>
    </asp:TextBox>
      </ItemTemplate>
</asp:TemplateColumn>