按钮单击事件仅触发一次.NET

时间:2011-04-12 14:36:58

标签: .net asp.net asp.net-ajax event-handling

第一次按下该按钮时,将调用eventhandler并显示一个弹出窗口。退出该弹出窗口后,第二次单击该按钮时,根本不会调用eventhandler。我已经调试了相当多的代码而没有找到任何应​​该破坏代码的“statewise”,因此只提供了这段简短的代码。如果您认为需要更多资源来查明此问题,请告诉我。

     <%@ 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>&nbsp;<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中生成此错误:

未捕获的异常:[Exception ...“'Sys.WebForms.PageRequestManagerServerErrorException:Sys.WebForms.PageRequestManagerServerErrorException:无效的回发或回调参数。使用in configuration或&lt;%@ 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] < / p>

1 个答案:

答案 0 :(得分:0)

加载Firebug并查看初次点击后是否收到任何JavaScript错误。