asp.net点击事件中的链接按钮未触发
我有这个链接按钮。 点击:
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向我展示了各自的LinkButton。
我认为自动生成的href是这里的主要问题。
@belogix评论很好
这是正常ASP .NET WebForms页面生命周期的一部分…每次发生回发时都会调用页面加载。 在PageLoad之后你的事件应该开始……但是你在页面加载中做了什么可以阻止这种情况发生吗?
我认为你的页面加载方法做错了什么。 可能是您的链接按钮是从页面加载事件重新加载。
示例错误
如果您使用网格视图以及网格内部的此链接按钮,那么您正在执行此操作
-
写网格绑定方法
-
然后你在页面加载事件中调用了网格绑定方法
你的代码现在看起来像
Page_load() { // called here Grid bind method }
现在,网格重新加载每个post。
解
现在你必须设置!IsPostBack
,然后在!IsPostBack
里面调用网格绑定方法
代码看起来像
Page_load() { if(!IsPostBack) { // called here Grid bind method } }
这是你的问题。 而且这是我的猜测。
请告诉我你是否使用任何控件(Gridview,listview等)
编辑
如果我没有在页面加载事件上编写任何代码,那么您的代码对我有用
看到
Default.aspx的
和服务器端代码是
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) { } }
这对我来说很好,所以你错过了页面加载事件中的任何内容
* OnClientClick
和onclick
没有任何问题。 在pageload事件中创建的问题,
请发布您的pageload
代码,否则我们无法解决。 🙂
编辑2
-
请检查链接按钮是否为表单元素的外部。 此链接按钮应位于表单元素内
-
你的页面加载事件应该是
protected void Page_Load(**object sender, EventArgs e**) { //Code }
不
protected void Page_Load(){}
你错过了
object sender, EventArgs e
我已经创建了演示项目并复制了相同的代码。它工作正常
在代码后面的文件
protected void lbDownloadFile_Click(object sender, EventArgs e) { //here is my debug pointer/breakpoint }
我刚刚在链接按钮上添加了文字。