culturenet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
今天解决了一件看似奇怪的问题(后来想一想也不奇怪,只是当时作了一天的程序,懵懵懂懂的)。问题是这样的,在我的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代码。结果正常了。想了一下,有时候需要在一个按钮点击以后执行两次代码,是否就能用此方法进行了。呵呵,不过困扰我一个多小时的问题解决了,还是挺高兴的。
posted on 2005-09-23 08:38  culturenet  阅读(1535)  评论(2编辑  收藏  举报