Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不总是执行动态创建按钮的回发_C#_Asp.net_Iis_Postbackurl - Fatal编程技术网

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

C# 不总是执行动态创建按钮的回发,c#,asp.net,iis,postbackurl,C#,Asp.net,Iis,Postbackurl,我有一个ASP页面,其中的表总是包含不同的行,从MSSQL数据库动态加载。在表格的每一行中,我都创建了一个名为Details的按钮,它是在表格编写过程中动态创建的。此详细信息按钮添加了以下代码: Button detailsButton = new Button(); detailsButton.Height = new Unit("18px"); detailsButton.Width = new Unit("65px"); detailsButton.Text = "Details"; de

我有一个ASP页面,其中的表总是包含不同的行,从MSSQL数据库动态加载。在表格的每一行中,我都创建了一个名为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的my development environment(我的开发环境)上运行良好,但在运行IIS 6.0且无法更新的生产环境中并不总是如此。在IIS 6.0上,一些客户端没有注意到任何问题,而其他客户端则无法显示详细信息页面,但是,当单击“详细信息”按钮时,回发URL不会加载,而只会重新加载当前页面

我试图更改许多设置(设置
详细信息按钮。单击
,将
OnClientClick
设置为“
返回真值;
”),但运气不佳。我只注意到添加以下内容:

detailsButton.OnClientClick = "return true;"; 

指令,重定向在IIS 7.5中也不起作用。因此,在我看来,当
OnClientClick
返回某个内容(true/false)时,回发不会被激活,而一些客户端可能不会返回任何
OnClientClick
,回发被激活。

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

detailsButton.OnClientClick = "windows.open(' new_page.aspx ', '_self'); return false;";