今天解决了一件看似奇怪的问题(后来想一想也不奇怪,只是当时作了一天的程序,懵懵懂懂的)。问题是这样的,在我的asp.net应用中点击 LinkButton 按钮以后执行插入数据库的操作。结果发现,在数据库中产生了两条记录。刚开始有点懵。后来想代码和存储过程不能有错。于是就仔细找了一下,结果发现,我的按钮点击事件处理程序执行了两次。经过分析,原来是这样的。
在我的 .aspx文件中,LinkButton 得代码如下:
<asp:LinkButton Runat="server" ID="UpdateButton" OnClick="Insert" Text="Add">
添加</asp:LinkButton>
而在我的.cs文件中,有如下代码:
protected void Insert( object sender, System.EventArgs e)
{
//插入数据的操作
}和
private void InitializeComponent()
{
this.UpdateButton.Click += new System.EventHandler(this.Insert);
this.Load += new System.EventHandler(this.Page_Load);

}
我想大家也明白了,代码执行两次的原因就是在 Html 代码里面也有一个 OnClick="Insert" 而在后面又处理了一次点击时间。所以,我在Html代码中去掉 OnClick代码。结果正常了。想了一下,有时候需要在一个按钮点击以后执行两次代码,是否就能用此方法进行了。呵呵,不过困扰我一个多小时的问题解决了,还是挺高兴的。
在我的 .aspx文件中,LinkButton 得代码如下:


而在我的.cs文件中,有如下代码:










我想大家也明白了,代码执行两次的原因就是在 Html 代码里面也有一个 OnClick="Insert" 而在后面又处理了一次点击时间。所以,我在Html代码中去掉 OnClick代码。结果正常了。想了一下,有时候需要在一个按钮点击以后执行两次代码,是否就能用此方法进行了。呵呵,不过困扰我一个多小时的问题解决了,还是挺高兴的。