繁体   English   中英

asp.net点击事件中的链接按钮未触发

[英]Link Button in asp.net click event not firing

<asp:LinkButton ID="lbDownloadFile" name = "lbDownloadFile" runat="server" CausesValidation="false" 
                            onclick="lbDownloadFile_Click" />

我有这个链接按钮。 点击:

protected void lbDownloadFile_Click(object sender, EventArgs e)
{    //here is my debug pointer/breakpoint
    .........................
}

但是这个事件没有解雇。 我的Page_Load()事件正在触发。 如何解决这个问题呢?

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        if (Session[Antrage_AnfrageSessionNames.AgntNr] == null)
        {
            Response.Redirect("../UserSessionError.aspx");
        }

        try
        {
            if (Request.QueryString["Kundennummer"].ToString() != null)
            {
                //If kundennummer exists in QueryString then stores it to further use 
                kundennummer = Request.QueryString["Kundennummer"].ToString();                    
            }
        }
        catch
        {
            kundennummer = string.Empty;
        }
    }
}

编辑:

我正在添加代码,FireFox firebug向我展示了LinkBut​​ton。 在此输入图像描述

我认为自动生成的href是这里的主要问题。

@belogix评论很好

这是正常ASP .NET WebForms页面生命周期的一部分...每次发生回发时都会调用页面加载。 在PageLoad之后你的事件应该开始......但是你在页面加载中做了什么可以阻止这种情况发生吗?

我认为你的页面加载方法做错了什么。 可能是您的链接按钮是从页面加载事件重新加载。

示例错误

如果您使用网格视图以及网格内部的此链接按钮,那么您正在执行此操作

  • 写入网格绑定方法

  • 然后你在页面加载事件中调用了网格绑定方法

你的代码现在看起来像

Page_load()
{
// called here Grid bind method
} 

现在,网格重新加载每个帖子。

现在你必须设置!IsPostBack ,然后调用!IsPostBack里面的网格绑定方法

代码看起来像

Page_load()
{
if(!IsPostBack)
{
// called here Grid bind method

}
} 

这是你的问题。 而且这是我的猜测。

请告诉我你是否使用任何控件(Gridview,listview等)


编辑

如果我没有在页面加载事件上编写任何代码,那么您的代码对我有用

看到

Default.aspx的

 <asp:LinkButton ID="lbDownloadFile" Text="he he he" name="lbDownloadFile" runat="server" CausesValidation="false" OnClientClick="lbDownloadFile_Click"
        OnClick="lbDownloadFile_Click" />

和服务器端代码是

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
      // Empty code 
    }

    protected void lbDownloadFile_Click(object sender, EventArgs e)
    {
    }
}

这对我来说很好,所以你错过了页面加载事件中的任何内容

* OnClientClickonclick没有任何问题。 在pageload事件中创建的问题,

请发布您的pageload代码,否则我们无法解决。 :)

编辑2

  • 请检查链接按钮是否为表单元素的外部。 此链接按钮应位于表单元素内

  • 你的页面加载事件应该是

protected void Page_Load(**object sender, EventArgs e**) { //Code }

protected void Page_Load(){}

你错过了

object sender, EventArgs e

我已经创建了演示项目并复制了相同的代码。它工作正常

  <asp:LinkButton ID="lbDownloadFile" name = "lbDownloadFile" Text="Click me" runat="server" CausesValidation="false" OnClientClick="lbDownloadFile_Click"
                            onclick="lbDownloadFile_Click" />

在代码后面的文件

  protected void lbDownloadFile_Click(object sender, EventArgs e)
        {    //here is my debug pointer/breakpoint
        }

我刚刚在链接按钮上添加了文字。

只需转到按钮属性并设置即可

UseSubmitBehaviour= False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM