вычислите общее количество ячеек gridview в javascript и отобразите их в нижнем колонтитуле
Всем привет,
Я очень стараюсь узнать общее количество ячеек gridview и отобразить значения в текстовом поле нижнего колонтитула. Каждый раз, когда я получаю исключение:
Microsoft JScript runtime error: Object expected
Вот мой код gridview:
<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:
<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-кодом.
Пожалуйста, кто-нибудь, помогите мне.