我正在使用AJAX控件工具包中的AJAX手风琴来显示从数据库中提取的动态项目列表。我从后面的代码生成整个手风琴。这在本地测试时没有问题,但是当我在线发布时,手风琴显示第一个项目,但在点击时没有做任何其他事情,基本上没有响应任何事情。还有指向手风琴内容中其他页面的链接,这些内容确实有效。
对于aspx我正在使用一个包含在其中的主页: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让我走上正轨。