我有一個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);
的目的是當按下一排一個鍵將客戶端重定向朝回傳網址。回傳網址是爲每個按鈕動態創建的,將每個按鈕與用戶選擇顯示細節的項目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
,並且回發被激活。