CS0123: No overload for 'OK_Click' matches delegate 'System.EventHandler'

Résolu
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006 - 6 juil. 2006 à 13:50
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006 - 7 juil. 2006 à 09:07
salut,

ce message d'erreur apparait : CS0123: No overload for 'OK_Click' matches delegate 'System.EventHandler' lorsque je compile.
voila mon code de mapage.aspx

<asp:FormView
id="form_pers"
runat="server"
DataSourceID="pers_SDS"
>

<ItemTemplate>

<h2>DEMANDE D'ACCES
</h2>

<table
style="width: 483px; height: 210px"
align="center">

<tr>

<td
colspan="4">Vous êtes sur le point de créer une demande pour

</td>

</tr>

<tr>

<td>WWID
</td>

<td><asp:TextBox
ID="wwid_TB"
runat="server"
Text='<%# Bind("wwid_pers") %>
'
/></td>

<td><asp:Button
ID="OK"
runat="server"
Text="OK"
OnClick="OK_Click"
/></td>

<td><a
href
=
"javascript:ouvreFenetre('http://browsejjeds.jnj.com/browsejjeds/', 550, 440)">JJEDS
</a></td>

</tr>

<asp:Panel
ID="info_usr"
runat="server"
Visible="true"><tr>

<td><asp:Label
ID="Label1"
runat="server"
Text="nom"
/></td>

<td><asp:TextBox
ID="nom_TB"
runat="server"
/></td>

<td><asp:Label
ID="Label2"
runat="server"
Text="prénom"
/></td>

<td><asp:TextBox
ID="prenom_TB"
runat="server"
/></td>

</tr>

<tr>

<td>système
</td>

<td>

<asp:DropDownList
ID="sys_DDL"
runat="server"
DataSourceID="system"
DataTextField="nom_logi"

DataValueField="id_logi"
AutoPostBack="true"
OnDataBound="sys_DDL_ajou_item"
/>

<asp:SqlDataSource
ID="system"
runat="server"
ConnectionString="<%$ ConnectionStrings:AccessRequestConnectionString %>
"

SelectCommand="SELECT * FROM [logiciel] ORDER BY [nom_logi]"></asp:SqlDataSource>

</td>

<td>service
</td>

<td>

<asp:DropDownList
ID="serv_DDL"
runat="server"
DataSourceID="service"
DataTextField="nom_serv"

DataValueField="id_serv"
AutoPostBack="true"
OnDataBound="serv_DDL_ajou_item"
/>

<asp:SqlDataSource
ID="service"
runat="server"
ConnectionString="<%$ ConnectionStrings:AccessRequestConnectionString %>
"

SelectCommand="SELECT * FROM [service] ORDER BY [nom_serv]"></asp:SqlDataSource>

</td>

</tr></

asp:Panel>

</table>

</ItemTemplate>

</asp:FormView></form>

et le code de mapage.aspx.cs
public

partial
class
Public_demande : System.Web.UI.
Page{

protected
void Page_Load(
object sender,
EventArgs e){

}

protected
void OK_Click(
object sender, System.Web.UI.WebControls.
DataListItemEventArgs e){

if(((
TextBox)e.Item.FindControl(
"wwid_TB")).Text !=
""){

Usr u =
new
Usr();u.loadInfos(

null, ((
TextBox)e.Item.FindControl(
"wwid_TB")).Text);((

TextBox)e.Item.FindControl(
"prenom_TB")).Text = u.firstName;((

TextBox)e.Item.FindControl(
"nom_TB")).Text = u.lastName;((

Panel)e.Item.FindControl(
"info_usr")).Visible =
true;}

}

 

protected
void sys_DDL_ajou_item(
object sender, System.Web.UI.WebControls.
DataListItemEventArgs e){

((

DropDownList)e.Item.FindControl(
"sys_DDL")).Items.Insert(0,
"");}

protected
void serv_DDL_ajou_item(
object sender, System.Web.UI.WebControls.
DataListItemEventArgs e){

((

DropDownList)e.Item.FindControl(
"serv_DDL")).Items.Insert(0,
"");}

}

je ne suis pas tres douee en langage objet, quelqu'un peut m'aider ?
ce message apparait depuis que j'ai rajouté le formView et tout ce qui va avec <ItemTemplate
>.
merci a vous

10 réponses

gldfdp Messages postés 90 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 21 février 2008
6 juil. 2006 à 17:39
Essaie de mettre un EventArgs au lieu d'un System.Web.UI.WebControls.FormViewCommandEventArgs comme paramètre dans ta fonction protected
void sys_DDL_ajou_item.

Puis dans le code de cette fonction:
 ((DropDownList
)form_pers.FindControl(
"sys_DDL")).Items.Insert(0,
"");
3
gldfdp Messages postés 90 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 21 février 2008
6 juil. 2006 à 15:01
C'est normal, tu appelles ta fonction lorsque tu cliques sur un button et dans la fonction appelée tu lui dis que l'eventargument est un DataListItemEventArgs d'où incompatibilité.
0
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
6 juil. 2006 à 15:27
je suis obligée d'utiliser DataListItemEventArgs pour récupérer ma textBox. De plus, ca me fait l'erreur pour les ddl aussi!!!
une solution ?
0
gldfdp Messages postés 90 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 21 février 2008
6 juil. 2006 à 15:42
tu rajoutes à ton boutton: CommandName="OK" et à ta formview: onitemcommand="vdItemcommand"

puis dans le code-behind:

void vdItemCommand(Object sender, FormViewCommandEventArgs e)
  {

      if (e.CommandName == "OK")
    {
      



            if
(((

TextBox
)e.Item.FindControl(

"wwid_TB"
)).Text !=

""
)



            {



               Usr
u =

new



Usr
();



               u.loadInfos(null, ((
TextBox)e.Item.FindControl(
"wwid_TB")).Text);


               ((TextBox)e.Item.FindControl(
"prenom_TB")).Text = u.firstName;


               ((TextBox)e.Item.FindControl(
"nom_TB")).Text = u.lastName;


               ((Panel)e.Item.FindControl(
"info_usr")).Visible =
true;


         }


   }
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
6 juil. 2006 à 15:55
j'ai ajouté ton morceau de code et j'ai l'erreur :
CS0117: 'System.Web.UI.WebControls.FormViewCommandEventArgs' does not contain a definition for 'Item'
pour cette ligne
if (((TextBox)e.Item.FindControl("wwid_TB")).Text != "")
aussi, que dois mettre dans OK_Click ? je le supprime ?
0
gldfdp Messages postés 90 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 21 février 2008
6 juil. 2006 à 16:23
Essaie de mettre à la place de e.item.FindControl("nomducontrol"), form_pers.Row.FindControl("nomducontrol").
tu vire l'evenement OK_Click il ne sert plus à grand chose
0
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
6 juil. 2006 à 16:46
je te remercie gldfpd...
it works quite well !
0
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
6 juil. 2006 à 17:09
excuse moi encore
j'ai maintenat ce message d'erreur :
CS0123: No overload for 'sys_DDL_ajou_item' matches delegate 'System.EventHandler'
pour cette ligne

je pensais avoir compris le fonctionnement mais la je m'apercois que je n'arrive pas a appliquer ce que tu m'as dit...
j'ai modifié le code behind des DDL de cette facon :
protected

void sys_DDL_ajou_item(
object sender, System.Web.UI.WebControls.
FormViewCommandEventArgs e)
{
   ((
DropDownList)form_pers.FindControl(
"sys_DDL")).Items.Insert(0,
"");
}
si tu pouvais m'aider encore...
0
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
6 juil. 2006 à 19:21
merci, je te tiens au courant de mon avancée !
0
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
7 juil. 2006 à 09:07
ok, ca fonctionne correctement maintenant !
il faut mettre EventArgs car c'est un argument et non pas un évenement declencheur si j'ai bien compris.
en tous cas merci pour tout !
0
Rejoignez-nous