<script type="text/javascript">
//实现某列自动求和:
function colSum(colIndex)//colIndex指定列的索引
{
//根据gridview的客户端ID(GridView1.ClientID)获取编译后此gridview的行数
var trs=document.getElementById("<%=GridView1.ClientID%>").getElementByTagName("TR")
var sum=0;
//i表示行号,行号从1开始(注意:如果没有表头可以从1开始,有表头就要把表头去掉)
for(var i=4;i<trs.length;i++)
{
//把每行中指定列的值相加
sum+=trs[i].document.getElementByTagName("td")[colIndex].childNodes[0].value*1;
}
//把结果赋给指定的单元格
trs[3]].document.getElementByTagName("td")[colIndex].childNodes[0].value=sum;
}
//实现某行中的几个单元格自动求和:
function rowSum(rowIndex)//rowIndex指定行的索引
{ var trs=document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("TR") //获取指定行中某单元格的值 var Value4=(trs[rowIndex].getElementsByTagName("td")[4].childNodes[0].value)*1; var Value5=(trs[rowIndex].getElementsByTagName("td")[5].childNodes[0].value)*1; var Value6=(trs[rowIndex].getElementsByTagName("td")[6].childNodes[0].value)*1; var Value7=(trs[rowIndex].getElementsByTagName("td")[7].childNodes[0].value)*1; var Value8=(trs[rowIndex].getElementsByTagName("td")[8].childNodes[0].value)*1; trs[rowIndex].getElementsByTagName("td")[3].childNodes[0].value=Value4+Value5+Value6+Value7+Value8; }</script>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" SkinID="GridViewStyle" > <Columns>
<asp:TemplateField> <ItemTemplate> <asp:TextBox ID="txtCeShi" runat="server" Text='<%# Eval("CeShi") %>' Width ="150px" οnblur="colSum(1);rowSum(this.parentElement.parentElement.rowIndex)"></asp:TextBox></ItemTemplate>
</asp:TemplateField><Columns>
</asp:GridView>
onblur是当鼠标离开此文本框时触发
谁还有更好的方法吗?总觉得行求和的时候,一个单元格一个单元格的取值然后再相加有点复杂......