Question

D'accord, voici mon problème:

J'ai une forme qui oblige à avoir deux fieldsets qui sont presque identiques, mais qui recueillent différents ensembles de données. Ceux-ci sont contenus dans un UpdatePanel. L'utilisateur saisit les données sous une forme, et quand ils ont frappé le « Ajouter »  bouton, cette ligne est insérée dans DataTable. L'utilisateur doit être en mesure d'entrer autant de lignes comme elle le souhaite.

Comme ils sont presque identiques, je suis arrivé un travail correctement, puis je l'ai utilisé comme base pour le second.

Le problème est que maintenant ils le bouton « Ajouter » ne se déclenche qu'une seule fois. Lorsque je tente de frapper à nouveau, rien ne se passe. Non postback se produit.

J'ai fait quelques Reasearch, et ils ont conseillé de faire enregistrer les boutons au gestionnaire de script bouton ASP.Net événement click ne pas tirer

Cela n'a pas résolu le problème.

Toutes les idées de ce que je peux essayer?

Edit 3: Solution: Le problème était asp: RegularExpressionValidator avec EnabledClientScript = « true » Il semble que le javascript de contrôle pour valider entre en collision et brise le asp:. Le javascript Button lorsque le contrôle est rendu. Si je désactivé le ClientScript, puis les boutons fonctionnent.

La suggestion de se pencher sur le cycle de vie me conduire à la bonne réponse. Le problème était qu'il n'y avait pas de cycle de vie qui se passe sur le code derrière. Donc, après avoir examiné ce que les boutons en rend, cela signifiait qu'il devait être un javascript problème lié.

Edit 2: J'ai désactivé les asp: contrôles de validation et il fonctionne. Toute autre idée dans tout cela?

Edit 1:

Voici un code correspondant à la question

le balisage bouton:

<td >
            <asp:Button ID="btnPrNew" Text="Add" OnClick="btnPrNew_Click" runat="server" />
</td>

Et ceci est fonction que géré l'événement onclick

protected void btnPrNew_Click(object sender, EventArgs e)
{
    if (prQuantityValidator.IsValid && prPriceValidator.IsValid)
    {
        permanentRepairs = newItemizedDT();
        permanentRepairsTotal = populateDT(gvEstimatePermanentRepairs,    permanentRepairs) + addNewPrRow(); ;

        updateSubtotal(totalPermanentRepairs, permanentRepairsTotal);

        bindData(permanentRepairs, gvEstimatePermanentRepairs);
        clearPrForm();
    }
    else
    {
        erErrorMessage.Text = "Please enter only number amounts in Quantity and Unit Price field.";
    }
}
Était-ce utile?

La solution

Qu'est-ce qui se passe dans vos événements de cycle de vie de la page (à savoir Page_Init, Page_Load, Page_PreRender)?

Vous gérez des choses sur tous les postback (êtes-vous Page.IsPostBack la vérification) que vous ne devez gérer la première charge de la page?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top