我在我的ASP.NET表单中有这样一段代码:
- <asp:Button ID="Button1" runat="server" Text="发表评论" CssClass="btn4" OnClick="Button1_Click" />
然后对应一段后台代码Submit_Click()
当我点击这个提交按钮的时候,发现无论如何,这段后台代码都会被执行两遍.Page_Load代码如下:
若将button对应的事件过程写在Page_Load 中调用,则不存在两次提交数据的问题。
- public void Button1_Click(object sender, System.EventArgs e)
- {
- string sql="select top 1 * from HotNews where h_fabu='1' order by h_Send_time desc,ID desc";
- DataSet m_ds=db.Getds(sql);
- if(m_ds.Tables[0].Rows.Count< 1)
- {
- //this.lblTitle.Text="没有通知";
- }
- else
- {
- //this.lblTitle.Text=m_ds.Tables[0].Rows[0]["N_Title"].ToString();
- sN_id=m_ds.Tables[0].Rows[0]["ID"].ToString();
- }
- m_ds.Clear();
- string strsql="insert into news_comment(N_ID,com_user,com_tel,com_Adress,content)values";
- strsql+="('"+sN_id+"','"+tbName.Text.ToString()+"','"+tbPhone.Text+"','"+tbAddr.Text+"','"+tbContent.Text+"')";
- db.GetExecuteNonQuery(strsql);
- Response.Write("<script>alert('留言成功');</script>");
- }
------------------
问题原因已经找到:
这种情况下不能在.aspx文件中加OnClick或者OnCommand属性,本例中去掉aspx中的OnClick属性就不存在问题了.