Je travaille sur la création d'une page Web en utilisant le contrôle ajax ModalPopupExtender. J'ai un gridview avec un itemtemplate de cases à cocher dedans. Il y a quelques boutons (Enregistrer, Annuler) dans le panneau contenant le gridview. La fenêtre contextuelle s'ouvre correctement et les événements du bouton sont également appelés. Cependant, si je coche/désélectionne l'une des cases à cocher puis clique sur le bouton Sauvegarder, l'état vérifié est toujours faux. J'ai cherché partout sur le web et tout essayé je pouvais. Essayé en utilisant des déclencheurs sans effet. J'ai même créé une page web de démo séparée juste pour tester cela. Jusqu'à présent, pas de chance. Juste Pour votre information, au cas où je remplace le gridview avec textbox dire ou quelque chose, la valeur est correctement reçue du côté serveur. Où pourrais-je me tromper? Ci-joint les extraits:ASP.NET: Les cases à cocher dans un gridview, qui fait partie de ModalPopupExtender, vérifier l'état ne s'envoyé au serveur
<asp:Button ID="exButton" runat="server" Text="Select for BA" />
<ajaxToolkit:ModalPopupExtender ID="ex_ModalPopupExtender" runat="server" BehaviorID="ex_ModalPopupExtender" TargetControlID="exButton" PopupControlID="Pops" BackgroundCssClass="modal-backdrop" CancelControlID="CancelChange">
</ajaxToolkit:ModalPopupExtender>
<asp:UpdatePanel ID="Pops" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-dialog">Select</div>
<div class="modal-body" style="overflow: scroll; overflow-x: auto; overflow-y: auto; max-height: 400px;">
<asp:GridView ID="gridTable" CssClass="table table-hover table-bordered" runat="server" Style="width: 100%; font-size: small" AutoGenerateColumns="False" DataKeyNames="Title">
<Columns>
<asp:BoundField HeaderText="Title" DataField="Title" />
<asp:TemplateField HeaderText="Selection">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="false" OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<br />
<br />
<div class="Controls col-xs-offset-4">
<input id="SaveBA_OK" type="button" value="Save" name="SaveBA_OK" runat="server" onserverclick="SaveBA_OK_ServerClick" />
<input id="CancelChange" type="button" value="Cancel" runat="server" onserverclick="CancelChange_ServerClick" />
</div>
<asp:Label ID="LabelPopup" runat="server" Text="" ForeColor="White"></asp:Label>
</div>
</ContentTemplate>
</asp:UpdatePanel>
Le backend code C# est la suivante:
protected void SaveBA_OK_ServerClick(object sender, EventArgs e)
{
int m = 0;
for (int i = 0; i < gridTable.Rows.Count; i++)
{
CheckBox chk = (CheckBox)gridTable.Rows[i].FindControl("CheckBox1");
if (chk.Checked)
{
selectedEx.Rows[m][0] = gridTable.Rows[i].Cells[0];
//selectedEx.Rows[m][1] = "1";
m = m + 1;
}
}
LabelPopup.Text = "success";
}
chk.Checked est toujours faux. Et oui, je coche les cases avant de cliquer sur le bouton Enregistrer. S'il vous plaît aider. : -/
où êtes-vous lié gridview.? – KanisXXX
en cas pageLoad – One
êtes-vous lient votre gridview intérieur 'if (! IsPostBack)'.? – KanisXXX