ASP.NET + ModalPopupExtender + Click Event

5

我有一个使用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的点击事件?我做错了什么吗?

1个回答

11

你需要从弹出层控件定义中移除OkButton属性。我知道这似乎违反直觉,但当你添加该参考时,它实际上会在客户端连接一切而不引起postback。

所以只需尝试这个:

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

这实际上解决了我另一个问题 - 在模态对话框中使复选框可选。将TargetControlID设置为隐藏的链接按钮就解决了问题。- 谢谢 - MikeD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接