【问题标题】:ASP.NET Button event is not raised in Web User ControlWeb 用户控件中未引发 ASP.NET 按钮事件
【发布时间】:2013-07-27 10:49:26
【问题描述】:

我有一个 ASP.NET 用户控件,其中包含一个 Telerik Report Viewer 和一个按钮(服务器控件)。

我需要在按钮的点击事件中处理一些事情,但该事件似乎没有触发。

有人知道为什么会这样吗?

这是 UserControl 中的 HTML 指令:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ReportControl.ascx.cs" Inherits="TelerikReportCustomRetrive.UserControl.ReportControl" %>

这是 UserControl 内的标记:

<form runat="server" id="form1">
<telerik:ReportViewer ID="ReportViewer1" runat="server" Height="461px" ShowDocumentMapButton="False" ShowHistoryButtons="False" ShowNavigationGroup="False" ShowParametersButton="False" ShowPrintPreviewButton="False"></telerik:ReportViewer>
<asp:Button runat="server" ID="btnNav" OnClick="btnNav_Click" />

以及代码背后的代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var instanceReportSource = new InstanceReportSource
            {
                ReportDocument =
                    new TheReport()
            };
            ReportViewer1.ReportSource = instanceReportSource;
        }
    }



    protected void btnNav_Click(object sender, EventArgs e)
    {
        Response.Write("Button Fired!");
    }

【问题讨论】:

  • 请发布您的代码,包括定义未触发按钮的标记和按钮事件处理程序的代码隐藏 (C#)。
  • 现在.. 你有我的朋友
  • 请提供您的 HTML 代码。
  • 你在页面中使用过updatePanel吗?
  • 你已经在btnNav_Click 上设置了一个断点并验证它没有被调试器命中?

标签: c# asp.net events


【解决方案1】:

删除 if(!PostBack) 语句。您应该始终初始化控件,不仅在页面没有回发的情况下。

【讨论】:

  • 我这样做了,但没有任何反应
  • 这不是真的。根据控件的不同,它可能会将其保持在其视图状态中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-02
  • 2016-08-02
  • 2013-08-09
相关资源
最近更新 更多