在aspx上单击按钮时运行c#代码

时间:2012-03-15 14:01:54

标签: c# asp.net

我有一个带有按钮的aspx页面。当用户单击按钮时,我必须在单独的.cs文件中运行一些c#代码。这样做的方法是什么?目前我有一种使用form.action将请求转发到另一个aspx页面的方法,但有没有办法在按下按钮时运行c#代码?

由于

5 个答案:

答案 0 :(得分:4)

使用事件处理程序

例如:

<asp:Button id="b1" runat="server" OnClick="b1_OnClick"/>

代码背后:

protected void b1_OnClick(object sender, EventArgs e)
{
 //call your .cs file code here
}

答案 1 :(得分:0)

您可以将.cs文件放到App_Code目录中,并且应该能够在该代码中调用可访问的方法,而无需引用外部程序集。

答案 2 :(得分:0)

使用分部类

的示例代码

物理文件名 - abc.cs

public partial class WebForm2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected override void OnInit(EventArgs e)
    {
        Button b = new Button();
        b.ID = "Button" + i;
        b.Text = "Button" + i;
        b.Click += new EventHandler(b_Click);
        form1.Controls.Add(b);
    }

}

物理文件名 - abc1.cs

public partial class WebForm2 : System.Web.UI.Page
{
    void b_Click(object sender, EventArgs e)
    {
        //some code
    }
}

答案 3 :(得分:0)

可以通过以下方式实现:

在ASPX文件中:

<asp:Button id="btnTarget" runat="server" Text="Target" OnClick="btnTarget_OnClick"/>

在(.cs)文件后面的代码中:

//First put the namespace of your target class in using block

protected void btnTarget_OnClick(object sender, EventArges e)
{
    //Target.NameSpace.TargetClass target = new Target.NameSpace.TargetClass(); // without using namespace in using blcok
    TargetClass target = new TargetClass(); // you can use direct Namespece here
    target.TargetMethod();
}

更新

TargetClass的代码放在应用程序周围可用的App_Code文件夹中,TargetClass应为public访问修饰符。

答案 4 :(得分:0)

ASP.NET在事件驱动的模型中工作。无论用户执行什么操作,无论是按钮单击还是其他可以由位于aspx页面代码隐藏中的事件处理程序监听的操作。

您可以将所有代码放在事件处理程序中,也可以从事件处理程序中调用其他类方法并执行任何操作。