4

私はたくさんの検索をしましたが、これを理解することはできません。

ユーザーがリンクDoSomethingをクリックしたときに表示したいModalPopupExtenderポップアップがあります。ポップアップにはドロップダウンコントロールがあり、ユーザーがダイアログを開くように要求したときにその場で入力したいと思います。これは、コードビハインドを介してサーバー側で発生する必要があります。現在、リンクのOnClickイベントを介してそれを実行しようとしていますが、リンクがModalPopupExtenderに関連付けられるとすぐに、リンクのOnClickコードは実行されません。

コードスニペット:

<asp:LinkButton ID="lnkDoSomething" runat="server" onClick="lnkDoSomething_Click">Do Something</asp:LinkButton>
<asp:ModalPopupExtender ID="mpelnklnkDoSomething" runat="server" BackgroundCssClass="modalBackground"
    DropShadow="true" PopupControlID="lnkDoSomething"
    PopupDragHandleControlID="pnlDragHandlerForlnkDoSomething"   
    TargetControlID="lnklnkDoSomething"></asp:ModalPopupExtender>

問題は、ModalPopupExtenderをOnClickコードが実行されないリンクに設定するとすぐに発生します。これは明らかに仕様によるものですが、ユーザーがリンクをクリックしてOnClickコードを実行する必要があるかのように、私には意味がありません(ナイーブ)。

これがサポートされていない理由と正しい解決策は何ですか?

4

1 に答える 1

8

ModalPopupExtenderをダミーボタンに接続し、コードビハインドからでも'sにモーダルを表示しますLinkButtonOnClick

マークアップ:

<asp:LinkButton ID="lnkDoSomething" runat="server" onClick="lnkDoSomething_Click">Do Something</asp:LinkButton>
<asp:Button id="dummyButton" runat="server" style="display:none;" />

<asp:ModalPopupExtender ID="mpelnklnkDoSomething" runat="server" 
  BackgroundCssClass="modalBackground" DropShadow="true" PopupControlID="controlToPopUpId"
  PopupDragHandleControlID="pnlDragHandlerForlnkDoSomething" 
  TargetControlID="dummyButton"></asp:ModalPopupExtender>

コードビハインド:

  protected void lnkDoSomething_Click(Object sender, EventArgs e) 
  {
     //do work
     mpelnklnkDoSomething.Show();
  }
于 2012-04-18T19:28:33.253 に答える