自定义GridView如
<asp:TemplateField HeaderText="A1">
<ItemTemplate>
<asp:Label ID="labA1" runat="server" Text='<%# Eval("A1") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A1" runat="server" Text='<%# Eval("A1") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A2">
<ItemTemplate>
<asp:Label ID="labA2" runat="server" Text='<%# Eval("A2") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A2" runat="server" Text='<%# Eval("A2") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A3">
<ItemTemplate>
<asp:Label ID="labA3" runat="server" Text='<%# Eval("A3") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A3" runat="server" Text='<%# Eval("A3") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>当用户处于编辑,增加状态的时候,如果动态实时的获得A3=A1+A2的值
即当用户输入A1的时候,A3立刻得到上面的表达式值
<asp:TemplateField HeaderText="A1">
<ItemTemplate>
<asp:Label ID="labA1" runat="server" Text='<%# Eval("A1") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A1" runat="server" Text='<%# Eval("A1") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A2">
<ItemTemplate>
<asp:Label ID="labA2" runat="server" Text='<%# Eval("A2") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A2" runat="server" Text='<%# Eval("A2") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A3">
<ItemTemplate>
<asp:Label ID="labA3" runat="server" Text='<%# Eval("A3") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A3" runat="server" Text='<%# Eval("A3") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>当用户处于编辑,增加状态的时候,如果动态实时的获得A3=A1+A2的值
即当用户输入A1的时候,A3立刻得到上面的表达式值
<ItemTemplate>
<asp:Label ID="labA1" runat="server" Text=' <%# Eval("A1") %>'> </asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A1" runat="server" Text=' <%# Eval("A1") %>'> </asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A2">
<ItemTemplate>
<asp:Label ID="labA2" runat="server" Text=' <%# Eval("A2") %>'> </asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A2" runat="server" onkeydown="checkFloat(event)" Text=' <%# Eval("A2") %>' onkeyup="buliao(this)"> </asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A3">
<ItemTemplate>
<asp:Label ID="labA3" runat="server" Text=' <%# Eval("A3") %>'> </asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A3" runat="server" Text=' <%# Eval("A3") %>'> </asp:TextBox>
</EditItemTemplate>
</asp:TemplateField> <script language="javascript">
function checkFloat(e){
var result=true;
result = (event.keyCode == 9 ||event.keyCode == 45 ||
event.keyCode == 46 ||
event.keyCode == 37 ||
event.keyCode == 39 ||
event.keyCode == 8 ||
event.keyCode == 110 ||
event.keyCode == 190 ||
(event.keyCode>=96 && event.keyCode<=105) ||
(event.keyCode>=48 && event.keyCode<=57));
event.returnValue=result;
}function buliao(obj)
{
var TRCurrent=obj.parentNode.parentNode;
var inputs=TRCurrent.getElementsByTagName("input");
var text6=null;
var text5=null;
var text4=null; for(var i=0;i<inputs.length;i++)
{
if(inputs[i].id.indexOf("A1")>0)
{
text4=inputs[i];
}
if(inputs[i].id.indexOf("A2")>0)
{
text5=inputs[i];
}
if(inputs[i].id.indexOf("A3")>0)
{
text6=inputs[i];
}
}
if(text4!=null && text5!=null && text6!=null)
{
text6.value=parseFloat(text4.value)+parseFloat(text5.value);
}
} </script>
<ItemTemplate>
<asp:Label ID="labA1" runat="server" Text=' <%# Eval("A1") %>'> </asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A1" runat="server" onkeydown="checkFloat(event)" onkeyup="buliao(this)" Text=' <%# Eval("A1") %>'> </asp:TextBox>
</EditItemTemplate> </asp:TemplateField>
<asp:TemplateField HeaderText="A2">
<ItemTemplate>
<asp:Label ID="labA2" runat="server" Text=' <%# Eval("A2") %>'> </asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A2" runat="server" Text=' <%# Eval("A2") %>' > </asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A3">
<ItemTemplate>
<asp:Label ID="labA3" runat="server" Text=' <%# Eval("A3") %>'> </asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="A3" runat="server" Text=' <%# Eval("A3") %>'> </asp:TextBox>
</EditItemTemplate>
</asp:TemplateField> 刚才事件加在A2上了,现在改过了