如何通过OnClick事件使用不在Code Behind中的方法?

时间:2013-11-29 08:28:21

标签: c# asp.net event-handling

我想为多个页面重用相同的方法,例如注销按钮或重定向。 现在我正在每个代码隐藏页面中编写相同的方法。

我该怎么做?在PHP中我只包含一个具有常用功能的文件,我可以访问它,但是ASP.NET中的方法是什么?

    <asp:Button ID="logoutBtn" Text="Logout" runat="server"
CssClass="btn btn-default" OnClick="logoutBtn_Click" />

我想从项目中的所有页面访问方法“logoutBtn_Click”。

3 个答案:

答案 0 :(得分:0)

您可以使用app_code文件夹。在那里创建一个.cs文件。

在那里写下你的方法并从你的所有页面调用该方法。

public class Class1
{
    public void abc()
    {
    }
 }

并像这样使用

Class1 c = new Class1();
c.abc();

编辑1

或者您可以使用可重复使用的控件,例如user-controlscustom-controls,并将其放置在项目的任何位置。

一些基本的例子

  1. http://www.codeproject.com/Articles/1739/User-controls-in-ASP-NET
  2. http://www.codeproject.com/Articles/87474/ASP-NET-Custom-Control

答案 1 :(得分:0)

在PHP中包含文件的方式,ASP.NET(C#)中有类似的方法。 您可以创建一个类,然后您可以通过创建该类的实例在项目的任何位置,在您想要的任何页面上使用该类。

例如:

Public Class logout
{
     public void logoutclick()
     {
        //your code goes here
     }
} 

现在在另一页中只创建一个类的实例并使用该类

中的函数
logout log = new logout();
log.logoutclick();

答案 2 :(得分:0)

在app_code类文件中创建按钮单击事件处理程序方法副本,如

namespace DotNetMirror
{
public class CommonClass
{
    public void CommonlogoutBtn_Click(object sender, EventArgs e)
    {
        //common logic code
    }
}
}

设计师档案:

<asp:Button ID="logoutBtn" Text="Logout" runat="server"
        CssClass="btn btn-default" OnClick="logoutBtn_Click" />

代码隐藏:

protected void logoutBtn_Click(object sender, EventArgs e)
{
    DotNetMirror.CommonClass obj = new DotNetMirror.CommonClass();
    obj.CommonlogoutBtn_Click(sender, e);
}

您可以在页面中拥有任意数量的按钮点击事件,但可以调用常用方法。