Trouver la case à cocher et de la zone de texte placé à l'intérieur gridview à l'aide de javascript
Je veux obtenir la valeur de la case à cocher placée à l'intérieur d'affichage de la grille. si la case est cochée, zone de texte dans la ligne doit être activer et si c'est encore décoché, la zone de texte doit se dégager et les personnes handicapées. J'ai posé cette question à quelques heures en arrière, mais n'a toujours pas obtenir de réponse satisfaisante.
J'ai essayé comme ceci.
//Mon code de réseau.
<asp:GridView ID="DeptGrid" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="DeptId" HeaderText="ID"/>
<asp:BoundField DataField="DeptName" HeaderText="Department"/>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="addToCompanyBox" onClick="EnableHODBox()" runat="server" />
</ItemTemplate>
<HeaderTemplate>
Add
</HeaderTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="hodNameBox" runat="server" Width="200px" Enabled="false"></asp:TextBox>
</ItemTemplate>
<HeaderTemplate>
Dept Head
</HeaderTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
//Mon code javascript
<script type="text/javascript">
function EnableHODBox() {
//alert('hello');
var GridView = document.getElementById('<%=DeptGrid.ClientID %>');
//var GridView = document.getElementById('');
var DeptId;
if (GridView.rows.length > 0) {
for (Row = 1; Row < GridView.rows.length; Row++) {
//DeptId = GridView.rows.cell[0];
if (GridView.rows[Row].cell[3].type == "checkbox")
//var chkbox = GridView.rows[Row].cell[3].type == "checkbox"
(GridView.rows[Row].cell[3].type).checked = true;
}
}
}
</script>
- où u gardé fonction, où u a appelée. collez le Code est apprécié
- Est de votre question que vous voulez être en mesure de trouver le correspondant de la zone de texte lorsque la case est cochée pour une ligne spécifique?
- J'ai eu le problème. En fait, il doit être appelé au "onclick" de l'événement.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
onclick
JavaScript au lieu de laOncheckedChanged
événement qui est une Case à cocher à côté serveur de l'événement.Edit:
Edit: À votre demande en commentaire
Cette solution est testé et œuvres en utilisant uniquement
JavaScript
(pas dejQuery
est nécessaire pour cette solution!).1. C# (Dans
Page_Load
Méthode)Dans
Page_Load
nous avons besoin d'ajouter un petit hack:De cette façon, nous ajoutons de l'appel de fonction JavaScript sur le
OnChange
cas de tous lesCheckBox
de notreGridView
. Ce qui est spécial, et nous ne pouvons pas atteindre par le biais duHTML
est que nous sommes en train de leRow Index
de chacun dans la fonction JavaScript, quelque chose que nous avons besoin plus tard.2. Quelques remarques importantes pour la Partie HTML
Assurez-vous que les deux
Checkbox
de contrôle et deTextbox
contrôle, mais plus important votreGridView
de Contrôle a id statique à l'aide de laClientIDMode="Static"
comme indiqué ci-dessous:Et pour le
GridView
de contrôle:3. Partie Javascript
Et ensuite dans votre fichier JavaScript/code:
4. Quelques Notes pour la mise en œuvre
var currentGridViewRow = GridView.rows[Row + 1];
le
[Row + 1]
est important de faire ce travail et ne devraient pas changer.Les lignes suivantes:
La
.cells[2]
et.cells[0]
est peut-être différent pour vous, donc vous devez choisir le bon numéro dans la[]
.Habituellement, ce sera le numéro de la colonne de votre
GridView
en commençant à compter à partir de0
.Donc, si votre
CheckBox
était dans la première colonne de la GridView, alors vous devez.cells[0]
.Si votre
TextBox
est dans la deuxième colonne de votreGridView
alors vous avez besoin.cells[1]
(dans mon cas ci-dessus,TextBox
était dans la troisième colonne de monGridView
et donc, j'ai utilisé.cells[2]
)J'ai aussi trouvé que l'instruction if (GridView.les rangées[Ligne].la cellule[2].type == "checkbox") entraîne une erreur, GridView.les rangées[Ligne].la cellule[2].le type n'est pas défini. Le code que j'ai maintenant est comme suit:
Vous pouvez définir votre grille comme ceci :
Et votre Fonction Javascript Serait :
Cette fonction Javascript est appelé événement onblur de la zone de texte.
Lorsque cette fonction est appelée en même temps, il transmet un paramètre
qui n'est rien, mais la zone de texte id.
À l'intérieur de la fonction javascript en utilisant le paramètre qui est le
id de la zone de texte, nous faisons le vaue.
Voici le code :
Ensuite, Pour chacune des "txtPeriod" contrôles disponibles à l'intérieur de la grille, nous devons attribuer
la valeur du courant "txtPeriod zone de texte" de la valeur.
Boucle de la Grille pour identifier chaque "txtPeriod" disponible :
Voici le code :
À l'intérieur de cette boucle, nous devons attribuer le "txtPeriod"(courant/Modifié) de la valeur à d'autres
"txtPeriod" zones de texte.Avant de céder ses bonnes pratiques à vérifier est nulle ou NAN.
Voici le code :
Salut ici vous avez de la Solution très simple
Supposons que votre grille est comme ceci :
et votre javascript pour trouver des contrôles à l'intérieur de votre grille est
Trouver des contrôles à l'intérieur de la grille à l'aide de java script: