2

カスタム コントロールがあり、メイン ページの隠し div に登録されています。ページの読み込み時に、非表示の div を持つコンテンツを含むモーダル ウィンドウ (fancybox 2) を表示します。

私の問題は、このコントロールにボタンがあり、ファンシーボックスから起動しないことです。

このFancybox - ASP.NET ボタンが機能しないことを試しましたが、何も変わりませんでした。

これを修正する方法を知っている人はいますか?望ましいのは、fancybox.js を修正せずに修正することです。

コントロールが配置されるコード

<a href="#inline" style="display: none" id="trigerButton"></a>
<div id="inline" style="display: none; width: 500px;">
    <asp:PlaceHolder runat="server" ID="PhCtrl"></asp:PlaceHolder>
</div>

コードビハインドから

var ctrlName = LoadControl("~/Path/control.ascx");
ctrlName.ID="ctrlID";
PhCtrl.Controls.Add(ctrlName);
var sb = new StringBuilder();
sb.Append("$(document).ready(function() {");
sb.Append("$('#trigerButton').fancybox({modal:true}).trigger('click');");
sb.Append("$('#clickNo').click(function(){$.fancybox.close(true)});");
sb.Append("});");
ClientScript.RegisterStartupScript(typeof(T), "_script", sb.ToString(), true);

カスタム コントロール

ボタンがあり、このボタンは起動しません

<asp:Button runat="server" ID="Button1" Text="Upgrade" OnClick="Button1_click" />
  protected void Button1_click(object s,EventArgs e)
    {
        //Do something 
    }

提案をいただければ幸いです

ありがとう

解決

fancybox.js を編集せずに解決策を見つけることはできませんでしたが、すべてを置き換えました

appendTo('body')

appendTo('form:first')
4

2 に答える 2

0

この問題の主な理由は、ダイアログを作成してページ内のどこかに配置するために、funcybox が DOM 構造体に変更を加えているためです。

あなたの場合、問題は、レンダリングされたコントロールがasp.netフォームの外側に最終入力ボタンを配置することである可能性があり、それが原因でさえ起動されません。

アップデート

同様のボックスで、同様の質問を見つけました。ソリューションはここでも機能する可能性があります

を使用して、フォーム内にダイアログの作成を追加します。

jQuery('#dialogof').appendTo('form');

ASP.NET フォーム フィールドがカラーボックスから POST しない

于 2012-06-04T12:21:17.557 に答える
0
//Try This
$('.fancybox').fancybox({
     parent: "form:first", // jQuery selector
});
于 2017-03-31T08:16:46.813 に答える