2009-06-16 11 views
2

私はdnnページのコードビハインドをどこに置くことができているのか困っています。例えばDNNページの背後にコードを配置する

MyPage.ascxはすでにそれが皮膚にキャストするために必要

<%@ Control language="vb" CodeBehind="~/admin/Skins/skin.vb" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.UI.Skins.Skin" %> 

を持っています。

しかし、Page_Loadで実行されるVB関数を追加できるようにしたいので、独自のコードビハインドファイルを作成しました。しかし、私は現在のコントロール(1つはskin.vbを参照しています)を取り除くことはできません。自分で設定することはできません。複数のコントロールを持つことはできません。

私も、タグ内のコードを埋め込むしようとしたが、私は私に、彼らはなどなど、ファイルの先頭で宣言されなければならないというエラーを与えるいくつかのインポートを行う必要があります...どのように

誰もが知っていますDNNページのコードビハインドを正しく追加しますか?

答えて

0

Skinから継承したコードビハインドファイルを追加することができます。

しかし、私はあなたのスキンを.ascxファイルに保存しておくことをお勧めします(DNNスキンにコードを含めることは非常に珍しいことです)。インポートを追加するには、VBのImportsステートメントの代わりに、@ Importディレクティブをページに使用します。

6

できるだけ自己完結型のスキンを維持するために、私は通常スキンのascxファイル、スキン内のすべてのHTMLの下にスクリプトブロックを追加します(そのようなものです)。

私のコードは、追加の名前空間を必要とする場合
<script runat="server"> 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load 

     If Not Page.IsPostBack Then 

      ' first page load logic here 

     End If 

     ' other page load logic here 

    End Sub 

    Private Function DoStuff(ByVal input As String) As Integer 

     ' custom function logic 

    End Function 
</script> 

、私はそうのように、import文で皮膚のASCXファイルの先頭にそれらを配置:

<%@ import namespace="System.Data" %> 
<%@ import namespace="System.Collections.Generic" %> 
<%@ import namespace="MyCustomLibrary" %> 
関連する問題