1

asp.net ボタンで奇妙な問題に直面しています。すべて問題ありませんでした。いくつかの ajax パネルとボタンを使用して Web パーツをコーディングしていましたが、ワイルド エラーが表示されたときに終了間近でした。そのときは言わなかったにもかかわらず、すべてのボタンが同じメソッドを起動していました。

まあ、それは既知の問題によるものであることがわかりました:http://forums.asp.net/t/1567526.aspx/1

呼び出されたメソッドを削除して、他のボタンが割り当てられたメソッドに戻るかどうかを確認しようとしましたが、それ以来、ボタンによってイベントが発生することはありません。もう… 絶対に…

メソッドを元に戻し、新しいコードで新しい Web パーツを作成し、サイトのバックアップを復元し、サーバーをリセットし、Visual Studio を再起動しました。そして最後に、まったく新しいコードでまったく新しい VS ソリューションを作成しようとしています。私は孤独なASPボタンが1つあるページを持っているだけで、何も起こりません...

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

4 に答える 4

1

ここに私が見つけた解決策があります。

イベントが消えた理由はまだわかりませんが、管理パネルから Web パーツを表示した場合にのみイベントが発生しないことに気付きました (サイト アクション > 設定 > Web パーツ ライブラリ > カスタム Web パーツをクリック)。Web パーツをテスト ページに追加すると、すべて正常に動作します。他の誰かが同じ問題を抱えている場合は、彼がこれを読んで、私が失った 1 週間を回避してくれることを願っています...

お時間とご回答ありがとうございます:)

于 2013-05-15T20:28:15.997 に答える
0

試す

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

あなたのCreateChildControlsで

于 2013-05-06T19:06:15.497 に答える
-1

ボタンには OnClick イベントを宣言する必要があります

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

または Page_Load で CreateChildControls を呼び出します

于 2013-05-06T18:43:05.973 に答える