1

Ventrian によるこの記事と、ここコミュニティの別の記事を見てきました。これを機能させることができないようです。そのため、私のモジュールは簡単に言えば次のようになります。

View.aspx

<%@ Control language="C#" Inherits="KDMC.Modules.kdmc_userTraderListView.View" AutoEventWireup="false"  CodeBehind="View.ascx.cs" %>
<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %> 
<asp:Panel ID="Panel1" runat="server">                        
    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" OnItemDataBound="traderWorks">
        <HeaderTemplate>
            <table id="datatable">
            <thead>
            <tr>
            <th>Some heading</th>                
            </tr>
            </thead>
        </HeaderTemplate>

        <ItemTemplate>
            <tr>
            <td><%# Eval("SomeData")%></td>                
            </tr>
        </ItemTemplate>

        <FooterTemplate>

        </FooterTemplate>

    </asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SiteSqlServer2 %>" SelectCommand="SELECT Whatever from WHerever"></asp:SqlDataSource>

<script type="text/javascript">
    $('#datatable').dataTable();
</script>

<dnn:DnnCssInclude runat="server" FilePath="~/DesktopModules/<modulename>/media/css/jquery.dataTables.css" />
<dnn:DnnJsInclude runat="server" FilePath="~/DesktopModules/<modulename>/media/js/jquery.js" />
<dnn:DnnJsInclude runat="server" FilePath="~/DesktopModules/<modulename>/media/js/jquery.dataTables.min.js" />
</asp:Panel>

記事によると、cssとjqueryをスキンファイルにプラグインしたことのあるときはいつでも、これは機能するはずです! 私のモジュールで DNN がそれを認識しない原因は何ですか?

編集済み

私は問題を見ていると思います。<dnn:DnnCssInclude runat="server> or <dnn:DnnJsInclude runat="server>DNN は、タグを使用してプラグインされたファイルを見ていると思います。モジュールが見えない

<script type="text/javascript">
    $('#datatable').dataTable();
</script>

これを修正するにはどうすればよいですか? 私たちのコミュニティのこの記事によると、インスタンス化する必要があります。どうすればいいですか?

4

1 に答える 1

2

私の推測では、さまざまなスクリプトとコンテンツの相対的な配置が問題の原因である可能性があります。FireFox を使用している場合は、Ctrl-Shift-J を押してエラー コンソールを表示すると、ページを更新すると Javascript エラーが表示されます。

DNN (または ASP.NET) で Javascript を扱っているときはいつでも、レンダリングされたコードを (ページでソースの表示 (Ctrl-U) を実行して) 見ることが重要です。コード。DNN の最新バージョン (6.x 以降) を使用していると仮定すると、jQuery をインスタンス化する必要はありませんが、ソースを見て jQuery が含まれていることを確認することで確認できます。「$('#datatable').dataTable();」の前に JsIncludes がレンダリングされていることを確認する必要があります。スクリプトと、そのスクリプトの上にもデータテーブル オブジェクトがレンダリングされていることを確認します。そうでない場合は、呼び出し内でプロバイダーを指定することにより、JsInclude ビットの配置を指定できます (つまり、ForceProvider="DnnPageHeaderProvider")。

于 2013-07-11T16:35:55.547 に答える