0

IE で奇妙な JavaScript エラーが発生します。updatepanel があり、その中にドロップダウン リストがあります。ドロップダウンリストの値を変更すると、「行: 5 '__EVENTTARGET' は null またはオブジェクトではありません」というエラーが表示されます。調べたところ、この行 5 と __EVENTTARGET は ASP.NET で生成された JavaScript コードにあります。

ページのちらつきがなく、新しいオプションが選択されたときにメソッドを起動するドロップダウンリストが必要です。

これが私のコードの一部です:

<asp:ScriptManager ID="uxScriptMan" runat="server" />
<asp:UpdatePanel ID="uxtestupdatepanel" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" 
    AutoPostBack="true" OnSelectedIndexChanged="TESTMETHOD">
 <asp:ListItem Text="TEST" Selected="true" />
 <asp:ListItem Text="Yes" Value="1" />
 <asp:ListItem Text="No" Value="0" />
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>

protected void TESTMETHOD(object sender, EventArgs e) { /*do nothing*/ }

Firefox では動作し、エラーは発生しません。実際、開発マシンでは、.aspx および .aspx.cs ファイルを使用してコンパイルされていない soln があり、IE ではエラーは発生しませんでした。実稼働マシンでコンパイルすると、IE js エラーが発生します。

問題は何ですか、どうすれば修正できますか、または少なくともどこから調べ始めることができますか? 運が悪かったので、たくさんのグーグルをしました。

4

4 に答える 4

1

暗闇の中でのショットですが、サーバーには開発環境と同じサービスパックがありますか?

.NET 3.5 SP1を使用している場合、サービスパックは大きな違いを生み、奇妙な不一致を説明する可能性があります。

于 2009-03-11T18:28:00.343 に答える
1

修正しました!Duck と ck のコメントの組み合わせでした。

みんなありがとう。

これは web.config の問題でした。この特定のアプリケーションの web.config は、サーバーで使用していた他のいくつかのアプリケーションとは異なっていました。これは、この問題を抱えている他の人のための修正です。

不正な web.config:

<compilation debug="false">
        <assemblies>
            <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        </assemblies>
    </compilation>


 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.61025.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

正しい web.config:

<compilation debug="false">
  <assemblies>
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
  </assemblies>
于 2009-03-11T20:00:39.573 に答える
1

両方に同じ web.config がありますか? 本番環境では、ScriptResource.axd のリソース ハンドラーが欠落している可能性があります

于 2009-03-11T18:39:59.597 に答える
0

ScriptManager EnablePartialRendering プロパティを設定してみてください

EnablePartialRendering="false"

それでもエラーが発生するかどうかを確認します

また、そのページでイベントの検証をオフにしてみてください

<%@ Page EnableEventValidation="false" %>

それでもエラーが発生するかどうかを確認します

于 2009-03-11T18:38:11.910 に答える