请问楼上的,当点击LinkButton 的时候,它回传到后台了,按道理说是
执行了page_Load()之后,就要执行kk_Click() 为什么执行了page_Load()就结束了。
执行了page_Load()之后,就要执行kk_Click() 为什么执行了page_Load()就结束了。
解决方案 »
- 如何使用SQL语句进行高性能分页?
- 登录后如何刷新登陆信息
- 关于.dll的引用问题
- javascript 调用后台cs函数问题!
- 怎样获取HTML里自己想要的数据(ASP.NET
- 安装DNN3.0.7出现安装错误,无法运行,请帮我看看问题出在什么地方,谢谢
- 一个简单问题:代码中,如何将 文件上传控件File Field 置空,解决马上给分!
- 创建新的C#类型ASP.Net Web Service项目时出错
- 如何使MediaPlayer安时间段播放wma文件!
- 水晶报表 有中文的.NET版本吗?
- 试图运行项目时出错:无法启动调试 asp调试被禁用 因为ASP进程作为不具备调试权限的用户运行
- js如何获取GridView模板列的值
protected void Page_Load(object sender, EventArgs e)
{ DIV1.Controls.Clear();
LinkButton kk = new LinkButton();
kk.Text = "动态的link ";
Kk.Click += new System.EventHandler(this.kk_Click); //为什么没用
DIV1.Controls.Add(kk);
}
把动态生成代码放到page_load当中去
服务器端对动态生成的控件没有任何记忆力,其所作的事情就只是按照流程解析成html输出到客户端;上面Button1_Click时
动态生成了LinkButton,并做了事件绑定,对客户端来说只是对这个LinkButton加上了__doPostBack表示点击后需要回刷页面,其参数是这个LinkButton的id,而服务器端并不知道自己曾生成过这个控件;然后就是点击LinkButton回刷页面,此时服务器端得到的只是postback回来的LinkButton的id,发现aspx页面上不存在这个id,便不予理会直接往下执行,也就不可能知道LinkButton已经绑定了kk_Click事件,除非你在这之前再生成一遍LinkButton,相当于告诉自己页面上存在这个LinkButton才会执行
{
if (this.ViewState["NewLBControl"] != null && this.ViewState["NewLBControl"].ToString() == "1")
{
NewLBControl();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
this.ViewState.Add("NewLBControl", "1");
NewLBControl();
}
private void NewLBControl()
{
DIV1.Controls.Clear();
LinkButton kk = new LinkButton();
kk.Text = "动态的link";
kk.Click += new System.EventHandler(this.kk_Click); //为什么没用
DIV1.Controls.Add(kk);
}
void kk_Click(object sender, EventArgs e)
{
Label1.Text = "ppppppppppppp";
throw new Exception("The method or operation is not implemented.");
}
Page.OnInit(e EventArgs)方法里。其余做法同6楼。