asp.net onclick事件没有被解雇

时间:2013-05-06 18:38:40

标签: asp.net web-parts

我的asp.net按钮面临一个奇怪的问题。 一切都很好,我正在使用一些ajax面板和按钮编写一个webpart,当出现一个疯狂的错误时它就差不多完成了。我的所有按钮都按照相同的方法发射,尽管我当时没有说过。

好吧,我发现这是由于一个已知问题:http://forums.asp.net/t/1567526.aspx/1

我试图删除被调用的方法,以查看其他按钮是否会返回其指定的方法,从那时起,按钮不再触发任何事件。 不再......从不...

我放回了方法,用新代码创建了一个新的webpart,恢复了我的站点的备份,重置了我的服务器,重新启动了Visual Studio,最后我试图用一个全新的代码创建一个全新的VS解决方案。我只是一个带有一个孤独的asp按钮的页面,没有任何反应......

ascx文件:

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %> 
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PublicationUserControl.ascx.cs" Inherits="CripmeeWebParts.Publication.PublicationUserControl" %>

<asp:Button ID="Valider" runat="server" Text="Valider" />

ascx.cs文件

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace CripmeeWebParts.Publication
{
    public partial class PublicationUserControl : UserControl
    {
        protected override void OnLoad(EventArgs e)
        {
            EnsureChildControls();
            base.OnLoad(e);
        }

        protected override void CreateChildControls()
        {
            base.CreateChildControls();
            Valider.Click += new EventHandler(Valider_Click);
        }

        void Valider_Click(object sender, EventArgs e)
        {
            throw new NotImplementedException();
        }
    }
}

我把这一切都束缚住了: 在ascx代码或CreateChildControls上附加事件,使用onCommand事件,在<form>中放置按钮,将调试器附加到w3进程以查看它是否通过我的所有方法。

我只是出于想法...... 感谢您的阅读,任何建议都会有用。

4 个答案:

答案 0 :(得分:1)

这是我找到的解决方案。

我仍然不知道为什么事件消失了,但我注意到只有当我从管理面板显示webpart时才会触发它们(网站操作&gt;设置&gt; webpart库&gt;点击我的自定义webpart)。如果我将我的webpart添加到测试页面,一切正常。如果其他人有同样的问题,我希望他会读到这个,避免我失去的一周......

谢谢大家的时间和答案:)

答案 1 :(得分:0)

刚刚把这个

Valider.Click += new EventHandler(Valider_Click);
Page_Load()Page_Init()中的

我看不到你拨打的地方CreateChildControls()

答案 2 :(得分:0)

尝试

Valider= new Button();
Valider.Text = "Valider";
Valider.Click += new  EventHandler(VAlider_Click); 
Controls.add(Valider)
您的CreateChildControls

中的

答案 3 :(得分:-1)

您的按钮需要声明的OnClick事件

<asp:Button ID="Valider" runat="server" Text="Valider" OnClick="Valider_Click"/>

或在Page_Load中调用您的CreateChildControl