不总是执行动态创建按钮的回发

时间:2017-01-11 18:08:50

标签: c# asp.net iis postbackurl

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

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);

目的是在一行按下一个按钮时将客户端重定向到Postback 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返回某些内容(true / false)时,PostBack不会被激活,而某些客户端可能不返回任何OnClientClick并且PostBack被激活。

1 个答案:

答案 0 :(得分:0)

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

Selection