0

私は ModalPopupExtender を使用しています:

<ajax:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="dummyButton2" PopupControlID="DayEntryPanel" CancelControlID="Button3" BackgroundCssClass="backCSS"/>

これを開く div をクリックするたびに、1 秒か 2 秒開いてから、ポストバックと共に消えます。

これは、JavaScript 関数によって開かれます。

            document.getElementById("dummyButton2").click();

それが問題だと確信していますが、この基本的なロジックを維持したいのですが、なぜこれが問題を引き起こすのかわかりません。私は、dummyButton2 とエクステンダーを独自の更新パネルに変更なしで配置しようとしました。

変数を保持してポップアップを表示する必要があるかどうかを判断し、その変数が true の場合は page_load で表示するなど、おかしなことをすることもできますが、それは何よりも問題を回避しているようです。考え?

4

2 に答える 2

1

aspx セクションを参照してください。

        <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return Clicked()" /> //On this button click the popup appears.
     <asp:HiddenField ID="HiddenField1" runat="server" />
   <cc1:ModalPopupExtender ID="ModalPopupExtender1"  runat="server" 
                            PopupControlID="popupPanel"  TargetControlID="HiddenField1" BackgroundCssClass="ModClass"
                            OkControlID="button2" CancelControlID="button3" BehaviorID="mdlpop">
    </cc1:ModalPopupExtender>

   <asp:panel id="popuppanel" runat="server" style="display:none; width:200px; background-color:yellow; padding:20px;">
        <p>are you sure?</p>
        <asp:button id="button2" runat="server" text="ok" OnClientClick="Button1_Click()"   />
        <asp:button id="button3" runat="server" text="cancel" />
    </asp:panel>

button2 によって呼び出される Javascript セクション:

    <script type="text/javascript" language="javascript">
    function Clicked()
    {                   
         $find('mdlpop').show(); //mdlpop is the BehaviorID in ModalPopupExtender1

          return false;      
    } 
    function Button1_Click()
    {
        alert("ok is pressed");
    }   

</script>

*注: * 次に、キャンセル ボタン id をModalPopupExtender1の CancelControlID として設定します。これにより、キャンセル ボタンのクリック時にポップアップが自動的に削除されます。また、ModalPopupExtender1の PopupControlID をポップアップ コントロールの ID に設定します (ここでは popuppanel です)。また、targetcontrolID空白のままにすることはできないため、隠しフィールドを追加して、そこに ID を指定しました (これには他の意味はありません)。また、 OkControlID (ここでは button2 に設定) を設定し、そのクライアント側関数で操作を定義することもできます。

これがypuが問題を解決するのに役立つことを願っています...

于 2011-06-15T07:45:04.370 に答える
0

ポップアップを表示するのはあまり良い考えではありません。以下を実行してください

<ajax:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="dummyButton2" PopupControlID="DayEntryPanel" CancelControlID="Button3" BehaviourId="mpcPopup" BackgroundCssClass="backCSS"/>

私が行動IDを提供したのを見てください、今あなたは以下をすることができます

$find("mpcPopup").show()//show me some popup's

ポップアップを非表示にする

$find("mpcPopup").hide();//zoot bye
于 2011-06-15T07:06:59.427 に答える