我在我的ASP.NET表单中有这样一段代码:
<asp:TableFooterRow ID="SubmitButtonRow" runat="server" Visible="true">
<asp:TableCell ID="SubmitButtonCell" ColumnSpan="2" runat="server">
<asp:Button runat="server" ID="Submit" Text="提交审批结果" onClick="Submit_Click" />
</asp:TableCell>
</asp:TableFooterRow>
然后对应一段后台代码Submit_Click()
当我点击这个提交按钮的时候,发现无论如何,这段后台代码都会被执行两遍.Page_Load代码如下:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Table1.Visible = True
BindData()
Else
Dim objMsgHander As New Cls_PublicFunction
Table1.Visible = False
Submit_Command()
objMsgHander.ErrMsg = "提交审核信息成功!请点击树形菜单进行其他操作!"
objMsgHander.ShowErrMsg()
objMsgHander = Nothing
End If
End Sub
若将button对应的事件过程写在Page_Load 中调用,则不存在两次提交数据的问题。
------------------
问题原因已经找到:
这种情况下不能在.aspx文件中加OnClick或者OnCommand属性,本例中去掉aspx中的OnClick属性就不存在问题了.