我有一个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被激活。
答案 0 :(得分:0)
我使用与onClientClick事件关联的javascript重定向解决了我的问题,并在同一事件上返回false。这样可以防止调用服务器,并且客户端会重定向到新页面而不刷新旧页面。
Selection