【问题标题】:ASP.NET + ModalPopupExtender + Click EventASP.NET + ModalPopupExtender + 点击事件
【发布时间】:2010-11-19 21:49:07
【问题描述】:

我有一个使用 ASP.NET AJAX 的 ASP.NET 应用程序。我正在使用 ASP.NET AJAX Toolkit 向用户呈现一个对话框。当用户在对话框中单击“是”时,我想在后面的代码中处理该事件。但是,我注意到没有达到我的点击事件。以下是主要代码:

<asp:Panel ID="dialogContinuePanel" runat="server" style="display:none;" DefaultButton="yesButton">    
  <div>Are you sure you want to continue?</div>
  <div>
    <asp:ImageButton ID="yesButton" runat="server" AlternateText="Yes" ImageUrl="/resources/yes.png" OnClick="yesButton_Click" />
    <asp:ImageButton ID="noButton" runat="server" AlternateText="No" ImageUrl="/resources/no.png" />
  </div>
</asp:Panel>

<asp:LinkButton ID="hiddenLinkButton" runat="server" Text="" />
<cc1:ModalPopupExtender ID="dialogErrorExtender" runat="server" OkControlID="yesButton" 
  TargetControlID="hiddenLinkButton" PopupControlID="dialogContinuePanel"   
  CancelControlID="noButton" />                    

我的代码背后:

protected void yesButton_Click(object sender, EventArgs e)
{
  string argument = yesButton.CommandArgument;
  // Do some processing and redirect the user
}

如何处理与 ModalPopupExtender 一起使用的 Button 的单击事件?我做错了什么?

【问题讨论】:

    标签: asp.net ajaxcontroltoolkit modalpopupextender


    【解决方案1】:

    您需要从模态弹出扩展器定义中删除 OkButton 属性。我知道这似乎违反直觉,但是当您添加该引用时,它实际上会将事情连接到客户端工作而不会导致回发。

    所以试试这个:

    <cc1:ModalPopupExtender ID="dialogErrorExtender" runat="server" 
      TargetControlID="hiddenLinkButton" PopupControlID="dialogContinuePanel"   
      CancelControlID="noButton" />
    

    【讨论】:

    • 这实际上解决了我遇到的另一个问题 - 让一个复选框可以在模式对话框中进行检查。将 TargetControlID 设置为隐藏的链接按钮就可以了。 - 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多