1

我正在使用 AJAX 控件工具包中的 AJAX 手风琴来显示从数据库中提取的项目的动态列表。我从后面的代码生成整个手风琴。这在本地测试时没有问题,但是当我在线发布时,手风琴显示第一个项目但单击时不执行任何其他操作,基本上没有响应任何内容。手风琴内容中还有指向其他页面的链接,这些确实有效。

对于aspx,我使用的是一个masterpage,里面有一个toolkitscriptmanager:

<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