按钮第一次被按下时,eventandler被调用并出现一个弹出窗口。退出弹出窗口后,第二次单击按钮时,根本不调用eventandler。我对代码进行了相当多的调试,但没有发现任何可能破坏代码的"状态",因此只提供了这一小段代码。如果你认为需要更多的资源来查明这个问题,请告诉我。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ReferenceControl.ascx.cs" Inherits="DynamicForm.DynamicGenerator.Controls.ReferenceControl" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<%@ Register Src="~/DynamicGenerator/Controls/SearchControl.ascx" TagName="SearchControl" TagPrefix="dyncontrols" %>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Inline" UpdateMode="Conditional"><ContentTemplate>
<asp:HyperLink ID="link" runat="server"></asp:HyperLink> <asp:Button ID="btn" runat="server" Text="Välj" onclick="btn_Click" />
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="popUpControl" runat="server" TargetControlID="popupDummyTarget" PopupControlID="pnlSearch" BackgroundCssClass="modalBackground">
</ajaxToolkit:ModalPopupExtender>
protected void btn_Click(object sender, EventArgs e)
{
ShowSearch();
}
void ShowSearch()
{
//some stuff
popUpControl.Show();
}
我怎么能让我的按钮听我的请求?
我已经尝试在事件处理程序中添加DataBind(),不幸的是没有工作。
UPDATE1:第二次单击在firebug中生成以下错误:
uncaught exception: [exception…]"‘Sys.WebForms。pagerequestmanagerservererroreexception:无效的回发或回调参数。事件验证在配置中启用或在页面中使用<%@ Page EnableEventValidation="true" %>。出于安全目的,此功能验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据是有效且预期的,则使用ClientScriptManager。RegisterForEventValidation方法,以便注册回发或回调数据以进行验证。'当调用方法:[nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "JS frame:: chrome://firebug/content/spy.js:: callPageHandler:: line 744" data: no]
加载Firebug,查看初始点击后是否出现JavaScript错误。