J'ai un gridview qui a ce regard:la liaison d'un ItemTemplate bouton pour vérifier dans quelle ligne a été cliqué
Le Edit est classique Modifier/mise à jour/Annuler ButtonColumn. La mise à niveau est un ItemTemplate avec un bouton intégré. Après avoir cliqué sur l'un des boutons de mise à niveau/mise à niveau inférieur, le gridview obtient ce regard:
Maintenant, je l'ai accompli jusqu'à présent d'envoyer l'événement bouton Enregistrer, afin d'obtenir la valeur de seulement l'un des checkboxList (celui fourni avec le bouton Save). Cependant, je voudrais associer chaque bouton Bloc de CheckboxList/Save à un seul bouton Upgrade/Downgrade. Donc, si je clique sur le bouton sur la première rangée, je dois désactiver le bloc sur la deuxième rangée et vice-versa. Ce que je droit est maintenant le suivant:
Dans la mise à niveau/mise à niveau inférieur ButtonClick:
protected void Button2_Click(object sender, EventArgs e)
{
GridView1.Columns[2].Visible = true;
button2Clicked = true;
Session["buttonClicked"] = button2Clicked;
}
Dans la zone Enregistrer ButtonClick:
protected void Button3_Click(object sender, EventArgs e)
{
CheckBoxList chb = new CheckBoxList();
Button bt3 = (Button)sender;
chb = (CheckBoxList)bt3.FindControl("Checkbox1");
if(chb.SelectedValue=="Upgrade")
Response.Write("Upgrade");
else if (chb.SelectedValue == "Downgrade")
Response.Write("Downgrade");
else
Response.Write("Not Allowed!");
}
A La deuxième version du bouton EnregistrerClick est la suivante:
protected void Button3_Click(object sender, EventArgs e)
{
CheckBoxList chb = new CheckBoxList();
Button bt3 = (Button)sender;
chb = (CheckBoxList)bt3.FindControl("Checkbox1");
if ((bool)Session["buttonClicked"])
{
if (chb.SelectedValue == "Upgrade")
Response.Write("Upgrade");
else if (chb.SelectedValue == "Downgrade")
Response.Write("Downgrade");
else
Response.Write("Not Allowed!");
}
else { Response.Write("Wrong Button clicked!"); }
}
Il semble que le bouton Up/Downgrade clic n'est pas stockée. Est-ce un événement qui me manque?
FindControl ne s'intéresse qu'aux enfants immédiats. CheckBoxList n'est certainement pas un enfant d'un bouton. En supposant qu'ils soient déclarés les uns à côté des autres dans le balisage, 'bt3.Parent.FindControl (" Checkbox1 ")' pourrait fonctionner.Cependant, tout cela semble hacky, le bon moyen serait d'utiliser l'événement RowCommand – Andrei
@Andrei cela fonctionne réellement, car la checkboxList et le bouton Enregistrer sont déclarés au même ItemTemplate. Le problème que j'ai est avec l'autre bouton, qui devrait activer seulement un du bloc CheckboxList/Save Button. Avez-vous un exemple sur RowCommand? Et de quelle manière vous pensez que c'est un hacky? – Ange1
@Andrei merci beaucoup, quelques modifications sur l'événement RowCommand, et tout fonctionne parfaitement. Si vous postez cela comme une réponse, je vais le marquer avec un grand plaisir :) – Ange1