0

あなたの典型的な「うまくいかない」は、ここで起こっています。どんな方向でも役に立ちます。

マスターページにログインコントロールがあり、jquery fancybox を使用してのみ表示し、ログインしたらユーザーをリダイレクトしようとしています。

しかし、ファンシーボックスの中に入れたときに押されたときに「何か」を行うべきボタンやコントロールは反応しません。div を表示したままにしてから、fancybox を使用せずにコントロールを使用すると、期待どおりの結果が得られます。

私のオプションは何ですか?

4

4 に答える 4

2

Javascript のエラーではありません。Fancyboxモーダルを使用すると、Fancyboxは新しい「ウィンドウ」を作成し、コードビハインドにアクセスできなくなります。

必要なことは、hiddenfield と、データ オブジェクトを hiddenfield に送信できる JavaScript 関数を作成することです。

コード例:

*Fancybox テキスト ボックス (fancybox 内) -> 送信時: Javascript ボタンは、テキスト ボックスのオブジェクト (値) を作成し、asp:Hiddeenfield に送信します。-> HiddenField から何をする必要があるのか​​???

div#inline2 {display: none;}
.myDummyClass {height: inherit;}

<!--Link that activates the fancybox with textbox-->
<a href="#inline2" class="myDummyClass">LinkName</a>
<!--this will be shown in fancybox-->

<div id="inline2">
    <p>
        <asp:TextBox ID="tBox" runat="server" TextMode="MultiLine" Width="200px" Style="overflow:hidden; height:400px;" />
        <asp:Button runat="server" Text="Knappen" OnClientClick="Send()" />
    </p>
</div>
<input id="HiddenField" type="hidden" runat="server" />
<script>
    $(".myDummyClass").focus(function() {
        $(".myDummyClass").fancybox({
            'modal': true
        });
    });

    function Send()
    {
        document.getElementById("<%=HiddenField.ClientID %>").value = document.getElementById("<%=txt1.ClientID%>").value;
        $.fancybox.close();
    }
</script>

コードビハインド:

var SomeThing = HiddenField.Value;
于 2010-09-09T14:05:19.833 に答える
0

ページにいくつかの JavaScript エラーがあるようです。JavaScript が壊れていると、ASP.Net コントロールが応答しなくなることがよくあります。

于 2010-04-05T22:58:06.700 に答える
0

: を使用する必要があるかどうかはわかりませんappendTo('form')

変更する必要があると思います:

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('body');

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('form');

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('body');

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('form');
于 2011-09-27T13:00:52.413 に答える
0

デフォルトでは、Fancybox はフォームではなくボディに追加されるため、コントロールはデフォルトの状態では機能しません。これを解決するには、ファンシー ボックスのソース コードで "appendTo('body')" を探し、それを "appendTo('form')" に変更します。

fancybox のバージョンによっては、複数の場所がある場合があります。

于 2010-12-27T16:20:21.650 に答える