VB.Net を使用した ASP.net 3.5 WebForms アプリケーションがあり、長年にわたって実行されています。このアプリケーションには、一部のクライアントでポストバックしない gridview 選択ボタンがあります。この問題は、Web アプリケーションを Windows Server 2003 から Windows Server 2008R2 上の IIS 7 に移動したときに、一部のクライアントで発生し始めました。
選択ボタンは、次のようにコードを生成する gridview で定義さasp:CommandField ShowSelectButton="True"
れます (HTML ソースからコピー)。
a href="javascript:__doPostBack('ctl00$bodyContentPlaceHolder$GridView1','Select$0')" style="color:#333333;">Select</a>
IE (さまざまなリリース) を使用する一部の Win XP、Win 7 ユーザーの場合、ユーザーが生成されたボタンをクリックしてもポストバックしません。JavaScript が有効になっていることを確認するために、すべてのユーザーがチェックされています。IE やその他のブラウザを使用するその他の Win XP、Win 7 ユーザーの場合、問題なく動作します。多くのグーグル検索で Javascript ポストバックの問題に関する情報が見つかりましたが、適合するものはないようです。
その他の情報: GridView Rowdatabound イベントで次のコードを使用すると、グリッドビュー行全体がポストバックに対して有効になります。
e.Row.Attributes.Add("onClick", "javascript:__doPostBack('" + Replace(GridView1.ClientID, "_", "$") + "','Select$" + e.Row.RowIndex.ToString + "')")
この HTML を生成します。
<tr align="center" valign="top" onClick="javascript:__doPostBack('ctl00$bodyContentPlaceHolder$GridView1','Select$0')"
Javascript は、機能しない JavaScript と同じように読み取られることに注意してください。ただし、行の他の場所をクリックすると、すべてのユーザーが機能します。これにより、次の 3 つの問題が考えられます。
- 一部のユーザーにとって失敗するリンクタグにある SELECT ボタンについて何かありますか?
- 異なる可能性のあるユーザー設定はありますか?
- インターネットプロバイダーがブロックしているものですか?