2017-01-11 15 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)、PostBackはアクティブ化されず、一部のクライアントはおそらくOnClientClickを返さず、PostBackがアクティブになっているようです。

答えて

0

私はonClientClickイベントに関連付けられたjavascriptリダイレクトを使用して、同じイベントでfalseを返して問題を解決しました。これにより、サーバーが呼び出されるのを防ぎ、クライアントは古いページを更新せずに新しいページに向けてリダイレクトします。

detailsButton.OnClientClick = "windows.open(' new_page.aspx ', '_self'); return false;"; 
関連する問題