0

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 つの問題が考えられます。

  1. 一部のユーザーにとって失敗するリンクタグにある SELECT ボタンについて何かありますか?
  2. 異なる可能性のあるユーザー設定はありますか?
  3. インターネットプロバイダーがブロックしているものですか?
4

1 に答える 1

0

1.一部のユーザーにとって失敗するように、リンクタグにある SELECT ボタンについて何かありますか?

ページはすべてのユーザーに対して同じ方法でレンダリングする必要があるため (開示していないクライアント検出を行っている場合を除きます)、それはありそうにありません。

2.異なる可能性のあるユーザー設定はありますか?

多分。私が探すものは次のとおりです。

  1. 互換表示設定を確認して、さまざまな設定を見つけてください (開発中にも試してみてください)。
  2. ユーザーが干渉する可能性のあるアドオンを持っているかどうかを確認します (iexplore.exe -extoffアドオンなしで IE を実行するために実行します)。
  3. IEにキャッシュされたページを強制的に無視させます(IE7以降でこれを行う最も簡単な方法は、F12を押して開発バーを表示し、キャッシュメニューで「サーバーから常に更新」を選択することです)。

3.インターネットプロバイダーがブロックしているものですか?

私はこれを非常に強く疑っています。

于 2012-06-21T20:24:03.863 に答える