一个很简单的问题

shadow841112 2006-03-24 05:47:30
<asp:Button ID="btnButton" Text="确定" Runat="server" />
如果我前台这样写。
private void btnButton_Click(object sender, System.EventArgs e)
{
...
...
}
后台代码这样写,那么运行不报错,但是事件并没有执行。
——————————————————————————————————————————
<asp:Button ID="btnButton" Text="确定" OnClick="btnButton_Click" Runat="server" />
如果我前台这样写。
private void btnButton_Click(object sender, System.EventArgs e)
{
...
...
}
后台这样写,那么会报错,private void btnButton_Click(object sender, System.EventArgs e)受保护,不能访问,改成public不报错,而且事件也能执行,怎么回事呢?
我看很多书上写法都是用不在前台定义OnClick,而在后台用private的方法写,为什么我写的事件就不执行呢?请指教~`
...全文
114 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
antiking 2006-03-25
  • 打赏
  • 举报
回复
private void InitializeComponent()//向组件的初始化方法
{

this.Load += new System.EventHandler(this.Page_Load);
this.Button1.Click += new System.EventHandler(this.Button1_Click)
}
2003里面cs是要这么写如果是在.aspx这些都不需要了.主要是将html和代码分离.你用的不是vs编的吧.如果是的话vs自动会针对.aspx的文件名生成个.cs文件.这些都不用你写了。
dai2003 2006-03-25
  • 打赏
  • 举报
回复
protected System.Web.UI.WebControls.Button Button1;
private void Button1_Click(object sender,EventArgs e)
{
}
this.Button1.Click += new System.EventHandler(this.Button1_Click);
用這種寫法哦
shadow841112 2006-03-25
  • 打赏
  • 举报
回复
呵呵,解决了。是这样的,我喜欢自己打代码,因为用设计视图的工具栏设计的,在HTML源视图下代码会很凌乱,可读性很差,所以我一直是用HTML源的编写方法,事件也是用在HTML源页面下编辑好的。现在想要代码分离,所以遇到了问题。
解决只需要这样,先在HTML源编写好控件代码,然后到设计页面下,那么.CS会自动生成定义控件的语句,然后双击控件进行代码编写,那么就会自动生成初始化代码和事件代码(我事件代码也是手写,所以出现问题)。这样做,HTML源代码既好看,也不会出现问题了。
感谢各位的帮助,我会给帖加分。
尤其感谢antiking(Q狼E行),希望您如果有空的话,给我E-MAIL留下你的联系方式,今后的时间还想请你多多指教。诚恳的学习者:shadow841112@163.com
shadow841112 2006-03-25
  • 打赏
  • 举报
回复
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
我的这里只有这一句,没有this.btnButton.Click += new System.EventHandler(this.btnButton_Click);
我是写的代码,不是用设计中的工具栏,会不会是这个原因?

shadow841112 2006-03-25
  • 打赏
  • 举报
回复
奇怪了,我用的是VS啊,为什么不会自动生成啊?是VS配置的问题吗?希望您继续关注,帮忙解决下~
shadow841112 2006-03-24
  • 打赏
  • 举报
回复
请问antiking(Q狼E行):
我把你给我的语句加以修改,写到了Page_Load()里,结果现在可以了。
我想请问的是,是不是每个事件都要这样处理呢?不是BUTTON的处理方法吗?我一会给你开新帖。给分。
我看了一些书,都是VS2003的环境,为什么他们没有在Page_Load()里写这个this.Button1.Click += new System.EventHandler(this.Button1_Click); 语句呢?如果要是页面复杂的话,岂不是要写很多类似的语句来实现事件?希望能弄明白~谢谢你了~
shadow841112 2006-03-24
  • 打赏
  • 举报
回复
谢谢大家的帮助,忘了告诉大家,我用的是1.1
antiking(Q狼E行)
我用的是VS2003,用你的方法,似乎还是不行,点了按纽没有反映,还是我的方法不对,请详细说明好吗?谢谢了~`

nanhaoff(战神柔情)
代码写了,没有反映哦,怎么回事呢?谢谢帮助~
antiking 2006-03-24
  • 打赏
  • 举报
回复
vs2003这么写
protected System.Web.UI.WebControls.Button Button1;
private void Button1_Click(object sender,EventArgs e)
{
}
this.Button1.Click += new System.EventHandler(this.Button1_Click);

vs2005
<asp:Button ID="btnButton" Text="确定" OnClick="btnButton_Click" Runat="server" />
protected void btnButton_Click(object sender, System.EventArgs e)
{
...
...
}
这么写肯定不会错。
nanhaoff 2006-03-24
  • 打赏
  • 举报
回复
按钮或者其他事件都是调用委托的
按钮名:a
a.onclick += new button.onclick(调用方法名称);

这样就可以执行的你按钮事件了
孟子E章 2006-03-24
  • 打赏
  • 举报
回复
protected void btnButton_Click(object sender, System.EventArgs e)
2。0中变了,编程局部类;
asp.net 1.1应该可以

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧