使用javascript计算gridview字段总数并显示在页脚文本框中

使用javascript计算gridview字段总数并显示在页脚文本框中,javascript,jquery,Javascript,Jquery,为了找出gridview单元格的总数并显示其值,我做了很多工作 页脚文本框。每次我遇到例外:请帮助我某人我做错了什么: 这是一个例外: Microsoft JScript运行时错误:需要对象 *以下是我的gridview代码:* 以下是我的JavaScript代码: <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js"></script>

为了找出gridview单元格的总数并显示其值,我做了很多工作 页脚文本框。每次我遇到例外:请帮助我某人我做错了什么:

这是一个例外: Microsoft JScript运行时错误:需要对象 *以下是我的gridview代码:*


以下是我的JavaScript代码:

   <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js"></script>  
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.js"></script> 
<script type="text/javascript">  
function Calculate(GridView)
{
   var total = 0;   
   var gridview = document.getElementById('<%=Gridview1.ClientID %>').getElementsByTagName("input");        
   for ( i = 0; i < gridview.rows.length; i ++)
   {
       var node = gridview.rows[i].cells[3].childNodes[3]; //textbox  

       if (node != undefined && node.type == "text") //check only textbox, ignore empty one
            if (!isNaN(node.value) && node.value != "") //check for valid number
               total += parseInt(node.value); 
   }       
  // document.getElementById("total").innerHTML = total.toString(); //display
   var gridview1 = document.getElementById('<%=grdview1.ClientID %>');
   gridview1.rows[gridview.rows.length -1].cells[0].innerHTML=total;

}

函数计算(GridView)
{
var合计=0;
var gridview=document.getElementById(“”).getElementsByTagName(“输入”);
对于(i=0;i

我尝试了很多方法,但每次都得到相同的例外: Microsoft JScript运行时错误:应为对象


我的JavaScript代码似乎有问题。请有人来帮我解决。

你的函数不需要接受对象,因为你没有在JavaScript中使用它,我认为你传递GridView的方式无论如何都不会起作用

我认为如果您利用一些jQuery选择器在DOM中查找所需的元素,您的javascript也会更干净、更容易理解。您可以为要合计的文本框使用一个特殊类,例如:

....
<asp:TemplateField HeaderText="Header 1" HeaderStyle-Font-Bold="false"  ControlStyle-Font-Bold="false">
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" Class="TotalBox" runat="server" Width="70px"></asp:TextBox>
    </ItemTemplate>            
    <FooterTemplate>
        <asp:Label ID="lblTotal" Class="TotalLabel" runat="server" Text="Total" Font-Bold="true">       </asp:Label>
    </FooterTemplate>            
</asp:TemplateField>
....
。。。。
....
Javascript

<script type="text/javascript">
function Calcutate()
{
     var total = 0;
     $('.TotalBox').each(function() {
         total = parseInt(this.val()) + total;
     });

     $('.TotalLabel').html(total);
}
</script>

函数计算()
{
var合计=0;
$('.TotalBox')。每个(函数(){
total=parseInt(this.val())+total;
});
$('.totalabel').html(总计);
}

注意到您的标签在模板中,您需要添加一个特殊类来从页脚中提取标签,因为您无法直接按ID提取标签。
<script type="text/javascript">
function Calcutate()
{
     var total = 0;
     $('.TotalBox').each(function() {
         total = parseInt(this.val()) + total;
     });

     $('.TotalLabel').html(total);
}
</script>