J'écris un composant Web SharePoint qui aura un formulaire ASP.NET simple. J'utilise HtmlTextWriter pour rendre les contrôles. Le problème que j'ai est que mon bouton ne semble pas déclencher le EventHandler que je lui ai assigné.asp: button Créé par programmation: EventHandler ne se déclenche pas
Je déclarai d'abord le bouton dans la méthode CreateChildControls et câblé le gestionnaire d'événements:
{
Button submitButton;
submitButton = new Button();
submitButton.Text = "Go!";
submitButton.Click += new EventHandler(submitButton_Click);
Controls.Add(submitButton);
}
J'ai déclaré la fonctionnalité du « submitButton_Click » EventHandler:
void submitButton_Click(object sender, EventArgs e)
{
submitButton.Text = "Good!";
}
Je rends les contrôles :
protected override void RenderContents(System.Web.UI.HtmlTextWriter output)
{
RenderChildren(output);
}
Enfin, je déploie la partie Web. Il apparaît bien dans le catalogue et quand je l'ajoute à une page, le contrôle apparaît. Cependant, je suppose que lorsque je clique sur le bouton, son texte devrait changer de "Go!" à "Bon!" Au lieu de cela, cela ne fait rien. Je suis assez nouveau dans toutes ces technologies - C#, Sharepoint et ASP.NET - donc je suis sûr que c'est un problème avec ma compréhension, mais en essayant différentes étapes à partir des articles sur le net et les questions précédentes ici havre de paix pas réparé mon problème. Merci d'avoir jeté un coup d'oeil.
EDIT: J'ai ouvert la page SharePoint avec la partie Web sur et le bouton a été créé comme ceci:
<input type="submit" name="ctl00$PlaceHolderMain$ctl00$ctl04" value="Go!" />
Il ressemble à la valeur Surclic n'a pas été ajouté du tout, ce qui est ce que je pensé ajouter l'EventHandler ferait. Est-ce que j'essaie d'ajouter OnClick d'une manière complètement fausse? Je ne comprends pas non plus pourquoi le nom du bouton ne correspond pas à ce que j'ai déclaré dans mon code.
Je vois que cela fait définitivement partie de mon problème. Je suis en train de câbler l'événement click dans la méthode CreateChildControls, et je rends les contrôles comme ils l'ont décrit dans le tutoriel, en appelant RenderControls (HtmlTextWriter) dans la méthode RenderContents. Cependant, je ne reçois toujours pas de joie, ce qui me porte à croire que la logique de ma méthode submitButton_Click est le problème. Est-ce que je tente de changer la propriété de texte du bouton incorrectement? –
submitButton est une propriété de votre classe? Essayez d'ajouter this.SaveProperties = True après submitButton.Text = "Good!"; – Bravax
Où déployez-vous la partie Web DLL? Si c'est dans le répertoire/bin de l'application Web, vous devez recycler le pool d'applications avant que les modifications ne prennent effet. –