2

次のようなイベントでユーザー コントロールを作成します。

public partial class Person : System.Web.UI.UserControl
{
    public delegate void EditPersonHandler(object sender, EditPersonEventArgs e);
    public event EditPersonHandler EditPerson;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

これは私の EditPersonEventArgs です:

 public  class EditPersonEventArgs:EventArgs
{
    private int id;

    public int ID
    {
        get { return id; }
        set { id = value; }
    }
    public EditPersonEventArgs(int ID)
    {
        id = ID;
    }

}

そして今、このユーザーコントロールを自分のページに追加したいので、これを行います:

<%@ Register TagPrefix="UControl" TagName="UControlPerson" Src="~/SimpleUC/Person.ascx" %>

<div>
    <UControl:UControlPerson ID="UControlPerson" runat="server"
                             OnEditPerson="UControlPerson_EditPerson" />
</div>

そして、これを処理する私の関数OnSavePerson

protected void UControlPerson_EditPerson(object sender, EditPersonEventArgs e)
    {

    }

ソリューションを構築しました。しかし、ページをレンダリングすると、次のエラーが発生します。

Description: An error occurred during the compilation of a resource required to service this
request. Please review the following specific error details and modify your source code 
appropriately. 


Compiler Error Message: CS0426: The type name 'SimpleUC' does not exist in the type 
'System.Web.UI.UserControl'

これは私の名前空間です: namespace UserControl.SimpleUC

4

1 に答える 1

1

名前空間の競合がUserControlあり、ユーザー コントロールの名前空間の一部がUserControl.SimpleUC名前空間として解決されていますSystem.Web.UI.UserControl

この問題を解決する最も簡単な方法は、コントロールに別の名前空間を選択することです。おそらく似たようなものUserControls.SimpleUC

于 2012-06-02T17:35:58.087 に答える