0

我有一个 ASP 页面,其中包含一个始终包含不同行的表,从 MSSQL DB 动态加载。在表格的每一行中,我创建了一个Button名为 Details 的文件,它是在写入表格期间动态创建的。此详细信息按钮添加了以下代码:

Button detailsButton = new Button();
detailsButton.Height = new Unit("18px");
detailsButton.Width = new Unit("65px");
detailsButton.Text = "Details";
detailsButton.ID = row.ItemArray[0].ToString();

detailsButton.PostBackUrl = "~\\DetailsPage.aspx?selectedSignalling=" +  detailsButton.ID;
//detailsButton.Click += detailsAgencyButton_Click;
//detailsButton.OnClientClick = "return true;";

table1cell4.Controls.Add(detailsButton);
table1row.Cells.Add(table1cell4);

目的是在连续按下一个按钮时将客户端重定向到回发 URL。回发 URL 是为每个按钮动态创建的,将用户选择显示详细信息的项目的 ID 与每个按钮相关联。

虽然这在运行 IIS 7.5 的我的开发环境中运行良好,但这并不总是在运行 IIS 6.0 且无法更新的生产环境中运行。在 IIS 6.0 上,一些客户端没有注意到任何问题,而另一些客户端则无法显示详细信息页面,但是,当单击详细信息按钮时,不会加载回发 URL,而只会重新加载当前页面。

我尝试更改许多设置(设置detailsButton.Click,设置OnClientClick为“ return true;”),但没有运气。我只注意到添加:

detailsButton.OnClientClick = "return true;"; 

指令,重定向在 IIS 7.5 中也不起作用。所以在我看来,当OnClientClick返回某些东西(真/假)时,PostBack 没有被激活,而一些客户端可能没有返回任何东西OnClientClick并且 PostBack 被激活。

4

1 回答 1

0

我使用与 onClientClick 事件关联的 javascript 重定向并在同一事件上返回 false 解决了我的问题。这可以防止调用服务器并且客户端重定向到新页面而不刷新旧页面。

detailsButton.OnClientClick = "windows.open(' new_page.aspx ', '_self'); return false;";
于 2017-01-13T10:10:19.157 回答