2017-01-11 6 views
0

MSSQL DB에서 동적으로로드 된 항상 다른 행을 포함하는 테이블이있는 ASP 페이지가 있습니다. 표의 각 행에서 세부 사항이라는 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); 

의도는 하나 개의 버튼이 행을 눌렀을 때 포스트 백 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)를 반환하면 포스트 백이 활성화되지 않고 일부 클라이언트는 아마도 OnClientClick을 반환하지 않고 포스트 백이 활성화 된 것처럼 보입니다.

답변

0

나는 onClientClick 이벤트에 연결된 javascript 리디렉션을 사용하고 동일한 이벤트에서 false를 반환하여 문제를 해결했습니다. 이렇게하면 서버가 호출되지 않고 클라이언트가 이전 페이지를 새로 고치지 않고 새 페이지로 리디렉션됩니다.

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