计算javascript中的gridview单元格总数并在页脚中显示 [英] calculate gridview cells total in javascript and display in footer

查看:92
本文介绍了计算javascript中的gridview单元格总数并在页脚中显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,
我要花很多时间才能找到gridview单元的总数,并在页脚文本框中显示这些值.每次遇到异常时:
Microsoft JScript runtime error: Object expected

这是我的gridview代码:

Hi all,
I am struggling a lot to find out the total of gridview cells and displaying the values in a footer textbox. Every time I am getting an exception:
Microsoft JScript runtime error: Object expected

Here is my gridview code:

<div>
<asp:gridview ID="Gridview1" runat="server" ShowFooter="true"

            onrowcommand="Gridview1_RowCommand"  AutoGenerateColumns="false"

            CellSpacing="0" CellPadding="0" Font-Bold="false"

            onrowdeleting="Gridview1_RowDeleting">
        <Columns>
      <asp:BoundField DataField="RowNumber" HeaderText="Row Number"/>
  <asp:TemplateField HeaderText="Select" ControlStyle-Width="50px" HeaderStyle-Font-Bold="false" ControlStyle-Font-Bold="false">
     <ItemTemplate>
         <asp:CheckBox ID="chkSelect" runat="server" Width="80px"/>
     </ItemTemplate>
   </asp:TemplateField>
        <asp:TemplateField HeaderText="Header 1" HeaderStyle-Font-Bold="false" ControlStyle-Font-Bold="false">
            <ItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Width="70px"></asp:TextBox>
            </ItemTemplate>
            <FooterTemplate>
                <asp:Label ID="lblTotal" runat="server" Text="Total" Font-Bold="true"></asp:Label>
            </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Header 2"  HeaderStyle-Font-Bold="false" ControlStyle-Font-Bold="false">
            <ItemTemplate>
                <asp:TextBox ID="TextBox2" Width="70px" runat="server" onkeyup="Calculate('Gridview1')"></asp:TextBox>
            </ItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="total" runat="server" Width="70px"></asp:TextBox>
            </FooterTemplate>

        </asp:TemplateField>
        <asp:TemplateField HeaderText="Header 3" HeaderStyle-Font-Bold="false" ControlStyle-Font-Bold="false">
            <ItemTemplate>
                 <asp:TextBox ID="TextBox3" Width="70px" runat="server" ></asp:TextBox>
            </ItemTemplate>
            <FooterStyle HorizontalAlign="Right" />
            <FooterTemplate>
             <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" CommandName="AddNewRow" />
            </FooterTemplate>
        </asp:TemplateField>
        </Columns>
</asp:gridview>
    </div>



这是我的JavaScript代码:



Here is my JavaScript code:

<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;

    }
</script>



我尝试了很多方法,但是每次都遇到相同的异常:
Microsoft JScript runtime error: Object expected

我的JavaScript代码似乎有问题.
请有人帮帮我.



I had tried with many ways but every time getting the same exception:
Microsoft JScript runtime error: Object expected

It seems something''s wrong with my JavaScript code.
Please somebody help me out.

推荐答案

错误输入代码(js代码中的控件名称错误)
这条线
Mistake in you code(wrong control name in js code)
This line
var gridview1 = document.getElementById(''<%=grdview1.ClientID %>'');


应该是


should be

var gridview1 = document.getElementById(''<%=Gridview1.ClientID %>'');


Gridview1是GridView控件的ID


Gridview1 is the ID of the GridView control


这篇关于计算javascript中的gridview单元格总数并在页脚中显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆