Pb de création de nouvel objet asp.net

cs_bastien30 Messages postés 21 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 18 décembre 2004 - 1 juil. 2004 à 17:22
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 2 juil. 2004 à 15:36
Afin de pouvoir créer un bouton personnalisé en VB.NET (je veux avoir une image qui change sur le bouton lors du survol de la souris)

l'objet asp:imagebutton ne prenant pas en compte la methode onmouseover, j'ai créé une nouvelle classe de bouton comme l'expliquait un internaute à cette adresse --> http://www.c2i.fr/code.aspx?IDCode=440

ce que je ne comprends pas c'est comment utiliser cette nouvelle classe dans une page asp.net
lorsque je fait référence au nouvel objet, le compilateur me précise qu'elle n'existe pas

comment faire un assembly de ce nouvel objet ?

merci

7 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
1 juil. 2004 à 18:24
je peux voir ton code ? normalement c'est tres simple et tu n'es pas obligé de passer par une assemblie
je t'explique comment ajouter le controle via le code car je me rappelle plus par l'html

donc tu as ta classe page

public class index
inherits Web.UI.Page

end class

et tu as la class du control :

Public Class ImageRollOverButton
Inherits System.Web.UI.WebControls.ImageButton

End Class

dans le page load tu n'as qu'a rajouter

dim IR as new ImageRollOverButton
IR.ID = "IR1"
IR.ImageOverURL = "Image.jpg"

'ajout du control dans la page

me.controls.add(IR)

c'est tout :)

Cyril
0
cs_bastien30 Messages postés 21 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 18 décembre 2004
1 juil. 2004 à 18:39
ok voici ce que j'ai fait :

j'ai créé une classe dans rollover.vb que j'ai compilé ensuite en DLL :

Imports System
Imports System.Web
Imports System.Web.UI.WebControls

Namespace StatFoot
Public Class MONBOUTTON
Inherits System.Web.UI.WebControls.ImageButton

Private _sImageOverURL As String
Public Property ImageOverURL() As String
Get
Return _sImageOverURL
End Get
Set(ByVal Value As String)
_sImageOverURL = Value
End Set
End Property

Protected Overrides Sub AddAttributesToRender(ByVal writer As System.Web.UI.HtmlTextWriter)
MyBase.AddAttributesToRender(writer)
If Me.ImageOverURL <> "" Then
writer.AddAttribute("onmouseOver", "javascript:this.src='" & Me.ImageOverURL & "';")
End If
If Me.ImageUrl <> "" Then
writer.AddAttribute("onmouseOut", "javascript:this.src='" & Me.ImageUrl & "';")
End If
End Sub
End Class

End Namespace

-------

dans ma page voici ce que j'ai mis :

<%@ Control Language="VB"%>
<%@ Register TagPrefix="STA" Namespace="StatFoot" Assembly="rollover" %>

<form runat="server">

</form>

PS: pfff c'est pas evident de passer à l'objet malgré toute mon expérience en SSII

:-)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
1 juil. 2004 à 19:29
oui il faut pas utiliser asp mais STA
<STA:Monboutton .../>

@+

Cyril
0
cs_bastien30 Messages postés 21 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 18 décembre 2004
1 juil. 2004 à 21:53
j'ai essayé mais ca ne marche toujours pas. Ne serait-ce pas un problème de référencement de l'objet MONBOUTTON ?
0

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

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
1 juil. 2004 à 22:28
Oui effectivement c'est peut etre aussi pour ca, deja je me demande pourkoi tu as une directive control et non page ? tu travails dans un fichier ascx ? sinon tu dois avoir une directive control
pour ce qui est du referencement du control essaye

<%@ Register TagPrefix="STA" Namespace="rollover.StatFoot" Assembly="rollover" %>

tout depend du namespace complet de ton control, en effet dans les options de ton projet de VS.net tu peux dire que ta dll utilisera le nom de ton assembly comme base de ton control, dans ce cas, ton controle aura le namespace rollover.StatFoot

@+

Cyril
0
cs_bastien30 Messages postés 21 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 18 décembre 2004
2 juil. 2004 à 13:15
En fait je ne travaille pas avec Visual Studio.NEt mais avec Dreamweaver Mx pour créer mon site internet et donc, mes pages VB.NET.

ensuite je compile mes pages vb avec l'outil de compil vbc.exe pour créer mes dll (dans mon cas, la dll rollover.dll est issue de mon fichier rollover.vb)

Ce que je ne maitrise pas c'est comment créer mes options de projet dans ce cas.

le namespace de mon controle est StatFoot

voila c'est tout ce que je peux te donner comme info... pour le reste je manque de compétences

@+

Seb
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
2 juil. 2004 à 15:36
j'ai jamais osé faire de dll avec dream je trouvais ca trop compliqué mais en tout cas felicitations de faire comme ca :)

pour ce qui est de ton problème tu peux trouver le namespace avec ildasm normalement il est distribué avec le framework sdk. son nom est tout simplement ildasm.exe
si tu n'y arrives tj pas avec ca, fais moi passer ta dll, si tu veux mon mail contacte moi en message privé, et je te dirais comment travaillais avec ta dll :)

@+

Cyril
0
Rejoignez-nous