/*小生刚看asp.net没两天,对其中的运行机制很不了解。望各位高手给与帮助,谢谢!*/<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>LeftRight</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="C#" runat="server">
public void Page_Load(Object src,EventArgs e){
Page.DataBind();
}
</script>
</head><body>
<form runat="server">
<asp:TextBox ID="Tb1" runat="server"/>
<asp:button runat="server" Text="Enter" ID="bt1"/>/*我定义的这个button到底触发了什么事件?点击他的时候似乎出发了什么事件?让我的数据绑定获得了新的数据并且更新显示了?谢谢*/
</form>
你输入的数据为:<%# Tb1.Text %>
</body>
</html>

解决方案 »

  1.   

    你察看一下生成的aspx文件的HTML源代码,或许就能明白他的原理!_doPostBack
      

  2.   

    应该是触发Click事件,可是你并没有给他的Click事件绑定函数,所以,等于什么都没有做,但是为什么能重新绑定数据了?是因为你单击以后触发了Page_Load函数,所以再次重新绑定数据了,这个你可以进行调试就可以看出来!
      

  3.   

    流程:只要是提交到服务器的,就一定会再次触发Page_Load事件,然后对应的再执行所触发的其他事件
      

  4.   

    /*我定义的这个button到底触发了什么事件?点击他的时候似乎出发了什么事件?让我的数据绑定获得了新的数据并且更新显示了?谢谢*/你的button没有触发任何事件,只是在你点击button时产生了回发,重新加载了Page_Load();
    而你的Page_Load()中调用了页面的DataBind(),该方法将调用页面中所有子控件的DataBind()。所以,你的“数据绑定获得了新的数据并且更新显示”。
      

  5.   

    也就是点击button,他什么也没做,因为我没有绑定事件。但是他是不是把这一动作(触发button动作)提交给服务器了?服务器从新加载页面,从而从新调用Page_Load方法?
      

  6.   

    asp的button是服务器控件,它会自动递交页面,从而重新Page_Load
    用html的button就可以了
      

  7.   

    把任何具有回发功能的控件的AutoPostBack属性设为true时,当你对她操作后,都将引起回发;
    而回发的顺序为:page_load() -> button_click()[如果有的话] -> Page_PreRender() ......所以,不能说“把这一动作(触发button动作)提交给服务器了”参见:ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconcontrolexecutionlifecycle.htm