0

考え方は簡単です。新しいリスト アイテムを作成できる Web パーツ ページを SP Designer 2010 で作成し、CSOM の JavaScript を使用して、別のページからモーダル ダイアログでページをポップします。問題は、ダイアログ ボックスが表示され、コンテンツを読み込んでいることを示す短い点滅が表示されますが、その後消えて、クリックしたばかりのページの更新されたバージョンが残ることです。これが私のコードです。. .

//attach a click delegate to the table containing the following button(s)
<button type='button' class='ms-listheaderlabel'>Close</button>

//on button clicked event, call the following function
function openModalDialog(dialogPage, closeCallback) {
  var options = [];
  options.title = unescape("Close Ticket");
  options.allowMaximize = true;
  options.showClose = true;
  options.autoSize = true;
  options.url = dialogPage;
  options.dialogReturnValueCallback = Function.createDelegate(null, closeCallback);
  SP.UI.ModalDialog.showModalDialog(options);
};

. . . ここで、dialogPage は作成したフォームの URL (同じサイト、SitePages ライブラリ) で、closeCallback はダイアログからの戻り値を処理するために渡される匿名関数です。ページを直接呼び出してみましたが、問題なく読み込まれます。ポップアップ ブロッカーは完全にオフです。IE9を使用して、8互換モードと、ストレートIE8を備えた別のマシンを試しました。システムモーダルは問題なく動作します。そこに何かアイデアはありますか?

4

1 に答える 1

3

私は今、まったく同じ問題を経験しています。私がこれまでに発見したことは、

<input type="button" value="Try Me" onclick="openModalDialogBox()" />

期待どおりに動作します。しかし、asp:button を使用して同じことを行うと、失敗します。サーバーへのポストバックに関係している可能性があると思いますが、それについては間違っている可能性があります。

ボタンを入力に切り替えているだけです。

ティム

于 2011-11-22T22:52:52.650 に答える