Comment obtenir la valeur de texte de la textbox qui est dans Gridview à l'aide de Javascript

Salut à tous j'ai écrit le script suivant pour obtenir la valeur de la textbox qui est en GridView mais je suis certaine valeur en tant que NaNpeut-on savoir où je suis allé mal

C'est mon exemple de script

var grid = document.getElementById("<%=grdInvoice.ClientID%>");
            var inputs = grid.getElementsByTagName("input");
            for (var i = 0; i < inputs.length; i++) {
                if (inputs[i].type == "text") {
                    if (inputs[i].name.indexOf("txtAmount").value != "") {
                        alert("Not Null");
                        amnt = parseInt(inputs[i].name.indexOf("txtAmount").value);
                        alert(amnt.toString()); //Getting Nan here
                        //var v = document.getElementById('<%= lblTotal.ClientID %>').value;
                    }
                }
            }

Ma grille est comme suit

 ddl    Quantity  desc     Rate    Amount
        1         d        10      10
        2         d        20      40

Comme ça quelques lignes vides seront également là j'ai besoin de faire la somme des Amount et affichage

Mon affichage de la grille

<asp:GridView ID="grdInvoice" runat="server" AutoGenerateColumns="False" GridLines="None"
Width="650px" CellPadding="2" CellSpacing="1" ForeColor="#333333" CssClass="inv_grid_data"
OnSelectedIndexChanged="grdInvoice_SelectedIndexChanged" OnSelectedIndexChanging="grdInvoice_SelectedIndexChanging"
Style="font-family: verdana; font-size: 9px;">
<RowStyle BackColor="#f1f1f2" ForeColor="#333333" BorderColor="#333333" BorderStyle="Solid"
BorderWidth="1px" />
<HeaderStyle CssClass="inv_grid_hed" BackColor="#f2f2f2" ForeColor="black" Font-Names="Verdana,Arial,Helvetica,sans-serif"
Font-Size="9px" Height="15px" Font-Bold="false" />
<AlternatingRowStyle CssClass="tr2" BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="Item Name" HeaderStyle-Width="140">
<ItemTemplate>
<asp:DropDownList ID="ddlItems" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlItems_SelectedIndexChanged"
DataTextField="LineItemName" DataValueField="LineItemName" CssClass="txt_box_ssm_drop"
Width="100%" Font-Names="Verdana,Arial,Helvetica,sans-serif" Font-Size="12px">
</asp:DropDownList>
</ItemTemplate>
<HeaderStyle Width="180px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtQuantity" CssClass="txt_box_ssm_big" runat="server" Width="100%"></asp:TextBox>
</ItemTemplate>
<HeaderStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Description">
<ItemTemplate>
<asp:TextBox ID="txtDescription" CssClass="txt_box_ssm_big" runat="server" Width="100%"></asp:TextBox>
</ItemTemplate>
<%--<ItemStyle Height="11px" Width="100px" /> --%>
<HeaderStyle Width="260px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Rate">
<ItemTemplate>
<asp:TextBox ID="txtRate" ReadOnly="true" CssClass="txt_box_ssm_big" runat="server"
Width="100%"></asp:TextBox>
</ItemTemplate>
<HeaderStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Amount">
<ItemTemplate>
<asp:TextBox ID="txtAmount" runat="server" CssClass="txt_box_ssm_big" Width="100%"></asp:TextBox>
<%--<asp:Label ID="lblamount" runat="server" Text='<%# Eval("Amount") %>'/>--%>
</ItemTemplate>
<HeaderStyle Width="100px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<%--<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/images/icon_delete.gif" OnClick="RowDelete_Click" OnClientClick="msg('Can you get there from here?','This is a Title')"/>--%>
<asp:ImageButton ID="RowDelete" runat="server" ImageUrl="~/images/icon_delete.gif"
OnClick="RowDelete_Click" OnClientClick="return showConfirm()" Style="margin-left: 15px;" />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowSelectButton="true" ButtonType="image" SelectImageUrl="~/Invoiceimages/Copy-32(1).png"
SelectText="Copy" HeaderText="Copy" />
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
</asp:GridView>

Mon script original d'abord, je vais ajouter un Montant dans l'affichage de la grille en fonction de l'utilisateur de la quantité après que je Voudrais afficher le montant total de la grille à une étiquette

<script type="text/javascript">
function multiplication(txtQuantity, txtRate, txtAmount) {
var weight = document.getElementById(txtQuantity).value;
var rate = document.getElementById(txtRate).value;
document.getElementById(txtAmount).value = weight * rate;
var amnt = 0;
//           var Grid_Table = document.getElementById('<%= grdInvoice.ClientID %>');
//           for (var row = 1; row < Grid_Table.rows.length; row++) {
//               var qty = 0;
//               for (var col = 0; col < Grid_Table.rows[row].cells.length; col++) {
//                   var cellcollectin = Grid_Table.rows[row].cells[col];
//                   for (var j = 0; j < cellcollectin.childNodes.length; j++) {
//                       if (cellcollectin.childNodes[j].type == "text") {
//                           if (cellcollectin.childNodes[j].name.indexOf("txtAmount") > 1) {
//                               if (cellcollectin.childNodes[j].value != "") {
//                                   qty = parseInt(cellcollectin.childNodes[j].value);
//                                   amnt = amnt + qty;
//                               }
//                           }
//                       }
//                   }
//               }
//           }
var grid = document.getElementById("<%=grdInvoice.ClientID%>");
var inputs = grid.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type == "text") {
if (inputs[i].name.indexOf("txtAmount").value != "") {
alert("Not Null");
amnt = grid.rows[i].cells[1].childNodes[0].value;
//amnt = parseInt(inputs[i].name.indexOf("txtAmount").value);
alert(amnt.toString());
//var v = document.getElementById('<%= lblTotal.ClientID %>').value;
}
}
}
document.getElementById('<%= lblTotal.ClientID %>').innerHtml = amnt.toString();
}
</script>
Il y a peut être une chance que vous êtes l'analyse de la chaîne de valeur en nombre entier..Qui peut être la cause
Avec ParseInt je ne reçois aucune alerte
Avant la conversion, essayez d'alerter les inputs[i].nom.indexOf("txtAmount").valeur
Undefined d'alerte s'affiche si je fais ça
Alors, qui est la cause de NaN..parce que vous êtes l'analyse Undefined en entier

OriginalL'auteur Dorababu Meka | 2012-04-12