2011-04-15 87 views
0

我想在模塊中嵌入一個C#類,以便我可以使用按鈕和單擊事件調用函數。我不知道如何做到這一點。我設法編寫了我想使用的類,但是我在哪裏放置了代碼?我在DNN創建一個模塊,並得到這個:在DNN中創建一個C#模塊

<%@ 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> 

我不能把我的代碼在這裏,我得到的各種有關不允許的,不能與「使用」導入類的命名空間的錯誤,等等上。那麼我該怎麼做?我的班級正在工作,我只需要將其包裝在一個模塊中,並將其放在DNN頁面上。

回答

1

最好從DotNetNuke模塊模板開始,像這樣的one。這不像創建一個aspx頁面那麼簡單。

+0

謝謝你的鏈接,我能夠下載它,我正在把它放在我的DNN網站上,但我仍然不確定我應該在哪裏輸入自己的代碼... – Lifes 2011-04-15 13:51:03

+0

我是還堅持如何添加它。這是一個項目,我們已經有一個DNN網站,我根據說明創建了模塊作爲一個單獨的項目。我如何參考它?當我嘗試從Manifest創建一個模塊時,我只能看到我的團隊的DNN項目中的文件......我如何添加這個單獨的模塊? – Lifes 2011-04-15 14:07:33

1

只需雙擊頁面的設計部分,頁面加載部分就會出現在頁面中,您可以將c#代碼放在那裏。

1

您可能需要做這樣的事情:

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

如果你不想想去整個模塊模板路線。請執行下列操作。

  1. 創建webusercontrol(的.ascx)
  2. 轉到隱藏文件(.ascx.cs)的代碼,並改變類從DotNetNuke.Entities.Modules.PortalModuleBase繼承(你將需要添加DotNetNuke.dll作爲參考)
  3. 向ascx添加你想要的任何控件並附加任何事件處理程序。我喜歡做此在頁面init方法

在ASCX:

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

在代碼背後:

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 

    } 
  • 編譯代碼

  • 從項目的bin文件夾中獲取[yourprojectname].dll文件,並將其複製到DNN的bin文件夾中。然後,複製模塊控制的ascx到專用文件夾中的DNN的DesktopModules文件夾

  • 例路徑:DesktopModule>命名爲yourprojectname> [YourASCXName]的.ascx

  • 登錄到DNN,轉到主機>擴展,然後單擊添加擴展。通過嚮導,確保將您的擴展類型設置爲模塊(DNN中有許多不同類型的擴展)。

  • 一旦添加,您將被帶回模塊擴展頁面。向下滾動並找到您的模塊擴展。單擊編輯,轉到模塊定義並添加具有有意義名稱的模塊定義。

  • 實施例:YourProjectNameMainView

  • 然後,添加ASCX文件作爲以該模塊擴展。點擊保存並完成設置
  • 您應該可以將您的(非常基本)模塊放在頁面上並使用它!