0

MSSQL DB から動的にロードされる、常に異なる行を含むテーブルを含む ASP ページがあります。テーブルの各行に、テーブルButtonの書き込み中に動的に作成される 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);

これは、行で 1 つのボタンが押されたときに、クライアントをポストバック 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 がアクティブ化されます。

4

1 に答える 1

0

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

detailsButton.OnClientClick = "windows.open(' new_page.aspx ', '_self'); return false;";
于 2017-01-13T10:10:19.157 に答える