1

Internet Explorer 9 には、doPostBack 機能がページに表示されないという問題があります。互換モードに切り替えると、ページが正しく再レンダリングされ、正常に機能します。

ASP.Net に PostBack が必要であると考えさせ、コントロールをレンダリングする別のコントロールを追加するためのソリューションを試しましたが、それでも解決しませんでした。ポストバックを必要とする別のコントロール (LinkBut​​ton、AutoPostback を使用した DDL など) を追加しましたが、まだページにレンダリングされていません。

出力キャッシュを使用していないため、オフにする必要はありません。

doPostBack がすべてのページでレンダリングされないようにする方法はありますか?

4

3 に答える 3

1

この動作の背後にある Web ブラウザーの機能を決定するコードがフレームワークにある可能性があります。

独自の __doPostback を追加して、おそらく次の行を追加します。

            if (theForm.__EVENTTARGET == null || theForm.__EVENTARGUMENT == null) {
                var lmTarget = document.createElement("INPUT");
                lmTarget.name = "__EVENTTARGET";
                lmTarget.id = "__EVENTTARGET";
                lmTarget.type = "hidden";


                var lmArgument = document.createElement("INPUT");
                lmArgument.name = "__EVENTARGUMENT";
                lmArgument.id = "__EVENTARGUMENT";
                lmArgument.type = "hidden";

                theForm.appendChild(lmTarget);
                theForm.appendChild(lmArgument);
            }
于 2011-05-16T11:36:41.260 に答える
0

独自のポストバックが必要な場合:

function postBackForm(targetElementId) {
var theform = document.forms[0];
theform.__EVENTTARGET.value = targetElementId;
theform.__EVENTARGUMENT.value = "";
theform.submit();

}

于 2011-03-24T13:09:10.300 に答える
0

実際には、EVENTTARGET と EVENTARGUMENT にも隠しフィールドが必要です。回避策はありますが、IE9 が私のサイトでうまく動作しない理由がわかりません。何が原因でしょうか?他の AutoPostBack 機能も正しくレンダリングされません。onSelectedIndexChanged は IE9 では renedered ではないため、javascript でそれを検出し、そのように接続する必要があります。

于 2011-03-25T17:25:05.077 に答える