2011-04-15 2 views
0

Je souhaite intégrer une classe C# dans un module afin que je puisse appeler les fonctions à l'aide des boutons et des événements de clic. Je n'ai aucune idée comment faire ça. J'ai réussi à écrire la classe que je veux utiliser, mais où dois-je mettre le code? J'ai créé un module DNN et obtenu ceci:Création d'un module C# dans DNN

<%@ Control Language="C#" ClassName="MailingSystem" Inherits="DotNetNuke.Entities.Modules.PortalModuleBase" %> 
<h1>Congratulations</h1> 
<p>You have successfully created your module. You can edit the source of the module control by selecting the View Source Action from the Action Menu.</p> 

<script runat="server"> 

</script> 

Je ne peux pas mettre mon code ici, je reçois toutes sortes d'erreurs sur les espaces de noms non autorisés, ne peuvent pas importer des classes avec « l'aide », etc. sur. Alors qu'est-ce que je suis supposé faire? Ma classe fonctionne, j'ai juste besoin de l'emballer dans un module et de le mettre sur une page DNN.

Répondre

1

Il est préférable de commencer avec un modèle de module DotNetNuke, comme ceci one. Ce n'est pas aussi simple que de créer une page aspx.

+0

Merci pour le lien, j'ai été en mesure de le télécharger et je travaille sur le mettre sur mon site Web DNN, mais je ne sais toujours pas où je devrais entrer mon propre code ... – Lifes

+0

Je suis également bloqué sur la façon de l'ajouter. C'est pour un projet et nous avons déjà un site DNN, j'ai créé le module selon les instructions en tant que projet séparé. Comment puis-je y faire référence? Lorsque j'essaie de créer un module à partir d'un manifeste, je ne vois que les fichiers du projet DNN de mon équipe ... comment ajouter ce module séparé? – Lifes

1

vous pouvez simplement double-cliquer sur la partie conception de la page, la section de chargement de la page apparaîtra dans la page et vous pourrez y mettre votre code C#.

1

Vous voudrez peut-être faire quelque chose comme ceci:

<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     /// code goes here 
    } 
</script> 
0

Si vous ne voulez pas voulez aller toute la route du modèle de module. Faites ce qui suit.

  1. Créer un webusercontrol (.ascx)
  2. Aller au code behind (.ascx.cs) et changer la classe d'hériter de DotNetNuke.Entities.Modules.PortalModuleBase (votre aura besoin d'ajouter DotNetNuke.dll comme référence)
  3. Ajoutez les contrôles que vous souhaitez à l'ascx et joignez les gestionnaires d'événements. Je préfère le faire dans la méthode init page

En ASCX:

<asp:Button ID="btnButton" Text="Click me" runat="server" /> 

Dans Code Derrière:

protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     btnButton.Click += btnButton_Click; 
     // OR 
     btnButton.Click += (sender, e)=> { // Button clicked! Do something }; 

    } 

    protected void btnButton_Click(object sender, EventArgs e) 
    { 
     // Your button has been clicked, Do something 

    } 
  1. Code de compilation

  2. Récupérez le fichier [yourprojectname].dll du dossier bin de votre projet et copiez-le dans le dossier bin de DNN. Ensuite, copiez votre ascx de commande du module dans un dossier dédié dans DesktopModules Dossier de DNN

Exemple Chemin: DesktopModule> YourProjectName> [YourASCXName] .ascx

  1. Connectez-vous pour DNN, allez dans Host> Extensions et cliquez sur ajouter une extension. Parcourez l'assistant en vous assurant de définir votre type d'extension sur Module (il existe plusieurs types d'extensions dans DNN).

  2. Une fois ajouté, vous serez redirigé vers la page des extensions du module. Faites défiler vers le bas et trouvez votre extension de module. Cliquez sur modifier, accédez aux définitions de module et ajoutez une définition de module avec un nom significatif.

Exemple: YourProjectNameMainView

  1. Ensuite, ajoutez votre fichier ASCX en vue de cette extension du module. Cliquez sur enregistrer et vous avez terminé avec la configuration

Vous devriez pouvoir déposer votre module (TRÈS BASIQUE) sur une page et l'utiliser!

Questions connexes