net csharp LinkBut​​ton:处理服务器端和客户端事件

时间:2009-11-27 07:45:42

标签: c# .net asp.net

我有一个 LinkBut​​ton 服务器控件,在somepage.aspx.cs文件中的OnClick事件中有一些附加方法抛出它的Id(控件),我想向该LinkBut​​ton添加另一个服务器端事件

如何实现?

编辑:

在default.aspx.cs上 这是一行打开一个新窗口的代码

lnlBtnProfile.Attributes.Add("onClick", "newwindow('" + acc.ProfileUrl + "','MyProfile');return false");

但我希望同时执行另一个功能。

2 个答案:

答案 0 :(得分:3)

您可以通过以下方式为服务器端点击事件添加多个处理程序:

protected void Page_Load(object sender, EventArgs e)
{
    linkBtn.Click += new EventHandler(handler1);
    linkBtn.Click += new EventHandler(handler2);
}

protected void handler1(object sender, EventArgs e)
{
    lbl.Text += "33";
}
protected void handler2(object sender, EventArgs e)
{
    lbl.Text += "66";
}

这将导致在单击给定链接按钮时触发handler1和handler2。

答案 1 :(得分:1)

这是一个带有客户端和服务器端事件的LinkBut​​ton:

<asp:LinkButton runat="server" ID="myLink" 
   OnClientClick="alert('this is clientside event');" 
   OnClick="myLink_Click">
</asp:LinkButton>

这是服务器端事件:

private void myLink_Click(object sender, EventArgs e)
{
    // Do some stuff
}

对客户端事件使用 OnClientClick ,对服务器端事件使用 OnClick 。但是如果你在OnClientClick上写了一个返回false,你的控件将不会回发,并且不会调用你的服务器端事件。

编辑:正如我所说,只需删除'return false;' line,以及您附加的服务器端事件将被调用。因为'回归虚假;'阻止你的其余代码,包括回发到服务器。

lnlBtnProfile.Attributes
  .Add("onClick", "newwindow('" + acc.ProfileUrl + "','MyProfile');");

lnlBtnProfile.Click += new EventHandler(lnlBtnProfile_Click);