前台 <form id="form1" runat="server">
    <div>
      <asp:TextBox ID="a" runat="server"></asp:TextBox>
      <asp:TextBox ID="b" runat="server"></asp:TextBox>
      <asp:button ID="Button1" runat="server" text="Button" OnClick="Button1_Click" />
    </div>
    </form>后台
        protected void Page_Load(object sender, EventArgs e)
        {
            a.Value = "aaa";
            b.Text = "bbb";
        }        protected void Button1_Click(object sender, EventArgs e)
        {
            string str = a.Text + "!!!!!!!!!!" + b.Text;
        }
为什么在button的click事件里面的到的不是输入的值,而是开始初始话的值。
如何得到用户输入的值。

解决方案 »

  1.   


    protected void Page_Load(object sender, EventArgs e) 
            { 
    if (!IsPostBack)
            {
                a.Value = "aaa"; 
                b.Text = "bbb"; 
            }
                
            } 加上个判断就可以了……
      

  2.   

    按钮是提交啦,大哥,他会重新执行load的哦
      

  3.   

    你的button控件肯定是服务器控件  click后会提交,会重新加载画面,就是会再次进入page_load里
    你不加if (!IsPostBack)条件  就会那样的 又重新把a,b TextBox的值重新设置了~
    ~
      

  4.   

    protected void Page_Load(object sender, EventArgs e) 
            { 
    if (!IsPostBack)
            {
                a.Value = "aaa"; 
                b.Text = "bbb"; 
            }
                
            } 
      

  5.   

    这个东西,牵涉到视图状态的问题,asp的webcontrol大多都能维持自己的视图状态,在页面第一次被请求的时候
    比如textbox,你在page_load里给它赋值,那么在整个页面到呈现阶段之前,它会把这个值加到视图状态中,当你
    postback的时候,它会自动从视图状态中查找那个值,这也就是为什么要检测ispostback的原因,如果你不是postback的,那和第一次请求没什么两样,asp.net之所以这么做,也就是利用视图来实现像winform里那样的状态维持(因为网页请求是无状态的)
      

  6.   

    这是控件生命周期的问题
    建议参考: http://blog.csdn.net/grgufo/archive/2008/02/20/2110123.aspx