2009-10-14 7 views
1

J'ai quatre boutons radio dans un contrôle répéteur qui, par lui-même est à l'intérieur d'un panneau de mise à jourRadioButton vérifié l'état sur asp: LinkButton postback

// code est quelque chose comme ça

`<asp:update panel ..> 
... 
<asp:Repeater> 
.. 
<asp:checkbox> 
.. 
.. 
</asp:update panel ..> 
<asp:LinkButton ID="next2" runat="server" CssClass="button_Submit" Font-Bold="true" OnClick="next_ServerClick" Text="Submit"> 
<asp:ImageButton ID="next" ImageUrl="~/images/newSummary.jpg" runat="server" OnClick="next_ServerClick" ImageAlign="Middle"/> 
protected void next_ServerClick(object sender, EventArgs e) 
{ 
foreach (System.Web.UI.WebControls.RepeaterItem Item in repeatercontrol.Items) 
{ 
    chkbox = ((CheckBox)Item.FindControl(chkboxName)); 
    if (chkbox.checked) 
    { 
    ... 
    } 
} 
}` 

je sélectionne l'un des cases à cocher et quand je clique sur le bouton de l'image, je suis en mesure d'obtenir le bon statut (checked = true). Mais quand j'utilise le bouton de lien, il arrive toujours comme vérifié = faux comme si la sélection ne s'est pas enregistrée.

Des idées sur pourquoi cela se passe-t-il?

+0

Pouvez-vous poster votre code-behind où vous faites cette vérification pour les deux ImageButton et LinkButton? –

+0

Je demandais le code autour de la vérification de la boucle. c'est à dire: les événements pour ImageButton et LinkButton. –

+0

Vous ne savez pas exactement ce que vous demandez. Demandez-vous abt le eventhandler pour l'événement onclick. protected void linkButton_Click (expéditeur d'objet, EventArgs e) { // code ci-dessus } – jbagavathi

Répondre

0

Vous devez enregistrer l'événement de clic de bouton de liaison en tant que déclencheur dans le panneau de mise à jour. Voir exemple ci-dessous:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" > 
    <ContentTemplate> 

     ... 

    </ContentTemplate> 

    <Triggers> 

     <asp:AsyncPostBackTrigger ControlID="LinkButtonID" EventName="Click" /> 

    </Triggers> 

</asp:UpdatePanel> 
+0

J'ai essayé votre suggestion et cela n'a toujours pas fonctionné. Comme je l'ai mentionné, je peux obtenir de la valeur lorsque j'utilise le bouton Image (et il n'est pas ajouté comme déclencheur) – jbagavathi

0

Sans voir le code, la seule raison pour laquelle les contrôles seraient incorrects est si vous les vérifier dans le Page Life Cycle avant que le ViewState est chargé.

EDIT: Utilisez des déclarations d'événements séparés et centraliser la logique de recherche:

protected void LinkButton1_Click(object sender, EventArgs e) 
    { 

    } 
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
    { 

    } 
+0

Je vérifie les valeurs dans le gestionnaire d'événement onclick pour les boutons. Donc, Viewstate aurait dû être chargé d'ici là, n'est-ce pas? – jbagavathi

+0

Oui, il devrait être là dans ces événements. –

+0

Je sais que je continue à demander, mais il serait utile de voir comment vous déclarez ces événements et le code-behind réel. Des choses comme ça ont tendance à être un simple oubli. –

Questions connexes