2

dnnページのコードビハインドをどこに置くことができるかを見つけるのに問題があります。

例えば:

MyPage.ascxにはすでに

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

スキンにキャストするために必要です。

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

また、タグにコードを埋め込んでみましたが、インポートを行う必要があり、ファイルの先頭などで宣言する必要があるというエラーが表示されます。

DNNページのコードビハインドを適切に追加する方法を知っている人はいますか?

4

2 に答える 2

6

スキンを可能な限り自己完結型に保つために、私は通常、次のように、スキンのすべてのHTMLの下にあるスキンのascxファイルにスクリプトブロックを追加します(つまり、邪魔にならないようにします)。

<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" %>
于 2009-06-17T12:20:05.043 に答える
0

から継承するコードビハインド ファイルを追加できるはずですSkin

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

于 2009-06-16T18:30:35.217 に答える