1

AJAX コントロール ツールキットの AJAX アコーディオンを使用して、データベースから取得した項目の動的リストを表示しています。コード ビハインドからアコーディオン全体を生成します。これはローカルでテストするときは問題なく動作しますが、オンラインで公開すると、アコーディオンは最初のアイテムを表示しますが、クリックしても何もしません。基本的に何も反応しません。アコーディオンペインのコンテンツ内には他のページへのリンクもあり、これらは機能します。

aspxの場合、ツールキットスクリプトマネージャーを含むマスターページを使用しています:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server EnablePartialRendering="true">
    </asp:ToolkitScriptManager>

コンテンツには、問題が解決することを期待して scriptmanagerproxy も追加しましたが、解決しませんでした。

空のアコーディオンは次のようになります。

<asp:accordion ID="Accordion1" runat="server"
HeaderCssClass="Header" ContentCssClass="Contents"
Font-Names="Verdana" Font-Size="10"
BorderColor="#000000" BorderStyle="Solid" BorderWidth="1"
FramesPerSecond="100" FadeTransitions="true"
TransitionDuration="500">
</asp:accordion>

これは、アコーディオンを生成するための私の現在のコードです:

public void getRequests()
    {

        DataTable requests = getRequests();

        if (requests.Rows.Count == 0)
        {
            return;
        }

        for (int i = 0; i < requests.Rows.Count; i++)
        {

            DataTable makers = getInformationByRequest();
            AjaxControlToolkit.AccordionPane pane1 = new AjaxControlToolkit.AccordionPane();
            pane1.ID = "pane" + i;
            Table table = new Table();
            table.Width = Unit.Percentage(100);
            TableRow row = new TableRow();
            row.CssClass = "Header";
            for (int j = 0; j < 4; j++)
            {
                Create panel head with information
            }
            table.Rows.Add(row);
            pane1.HeaderContainer.Controls.Add(table);

            Table table1 = new Table();
            table1.Width = Unit.Percentage(100);

            TableRow rowhead = new TableRow();
            rowhead.CssClass = "Contents";

            TableCell cellName = new TableCell();
            cellName.Text = "Bedrijf naam";
            TableCell cellStatus = new TableCell();
            cellStatus.Text = "Request status";
            TableCell cellAction = new TableCell();
            cellAction.Text = "Actie";

            rowhead.Cells.Add(cellName);
            rowhead.Cells.Add(cellStatus);
            rowhead.Cells.Add(cellAction);

            table1.Rows.Add(rowhead);

            for (int j = 0; j < makers.Rows.Count; j++)
            {
                TableRow row1 = new TableRow();

                if (makers.Rows.Count != 0)
                {
                    //method to create table1
            }
            pane1.ContentContainer.Controls.Add(table1);
            }

            Accordion1.Panes.Add(pane1);
        }

私が言ったように、これはデバッグ時に問題なく動作します。

どんな助けでも大歓迎です。

編集:

これを使用して解決しました:

http://geekswithblogs.net/lorint/archive/2007/03/28/110161.aspx

私を正しい軌道に乗せてくれた Henk mollema に感謝します。

4

0 に答える 0