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 NaN
peut-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
Avant la conversion, essayez d'alerter les inputs[i].nom.indexOf("txtAmount").valeur
Alors, qui est la cause de NaN..parce que vous êtes l'analyse
Avec
ParseInt
je ne reçois aucune alerteAvant la conversion, essayez d'alerter les inputs[i].nom.indexOf("txtAmount").valeur
Undefined
d'alerte s'affiche si je fais çaAlors, qui est la cause de NaN..parce que vous êtes l'analyse
Undefined
en entier
OriginalL'auteur Dorababu Meka | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
Après tout, ici, est la solution
OriginalL'auteur Dorababu Meka
Il y a un problème dans votre code Javascript
indexOf()
renvoie -1 entier positif ou,value
est la propriété de la zone de texte de saisie et n'a rien à voir avecindexOf()
.Remplacer votre code:
D'où le problème vient ? Il fonctionne pour moi.
Je vais avoir une page principale avec gridview alors est-il meilleure façon de trouver
if (inputs[i].name == "txtAmount")
Si l'ID de votre zone de texte est modifié, alors vous devez définir sa ClientID première:
txtCtrl.ClinetID = "txtAmount";
Voir la page web de la source html dans le navigateur et essayez de trouver le txtAmount s'il n'y est pas cela signifie que son ID avait changé.Comment puis-je le faire en javascript
OriginalL'auteur Coder
Je pense que la méthode que vous utilisez est faux. mieux utiliser quelque chose comme ci-dessous:
Vérifier ma mise à jour dans ma question une fois
S'il vous plaît essayer celui-ci..
Ne fonctionne pas pas d'alerte est affiché
pouvez-vous il suffit de coller le Gridview code..?
OriginalL'auteur Vishal Suthar
Texte à l'intérieur de la gridview
Code Javascript
OriginalL'auteur lakshmi