none
我的textbox.text无法被修改(附代码) RRS feed

  • 问题

  • 我的主要目的是想在重载或刷新页面后textbox内的值保持不变,由于出于某些原因我不能用postback来刷新页面,希望有高手来帮助我

    其中test.aspx为当前页面

    protected void Page_Load(object sender, EventArgs e)
    {
        string fr = Request.QueryString["fr"];
        if (fr != null)
        {
            TextBox1.Text = fr;
            Response.Write(fr);
        }
    }
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect("test.aspx?fr=" + TextBox1.Text);
    }
    
    2009年8月18日 14:31

答案

  • 你好 如果每次的TextBox1 都是通过Request.QueryString 来赋值的 那么当然会保持不变
    你可以尝修改代码为

    protected void Page_Load(object sender, EventArgs e)
    {
    if(!Page.IsPostBack)
    {
        string fr = Request.QueryString["fr"];
        if (fr != null)
        {
            TextBox1.Text = fr;
            
        }
    }
    Response.Write(this.TextBox1.Text);
    }


    同时在<asp:TextBox ID="TextBox1" ...
    设置 <asp:TextBox ID="TextBox1" EnableViewState="true" ...

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月19日 2:00
    版主

全部回复

  • 请检查是否关了视图

    2009年8月19日 0:56
  • 你的TextBox1是Password吧?
    这样
    TextBox1.Attributes.Add("value", fr)

    【孟子E章】
    2009年8月19日 1:18
    版主
  • 你好,请提供前台页面定义!
    jon.valett@gmail.com
    2009年8月19日 1:43
    版主
  • 你好 如果每次的TextBox1 都是通过Request.QueryString 来赋值的 那么当然会保持不变
    你可以尝修改代码为

    protected void Page_Load(object sender, EventArgs e)
    {
    if(!Page.IsPostBack)
    {
        string fr = Request.QueryString["fr"];
        if (fr != null)
        {
            TextBox1.Text = fr;
            
        }
    }
    Response.Write(this.TextBox1.Text);
    }


    同时在<asp:TextBox ID="TextBox1" ...
    设置 <asp:TextBox ID="TextBox1" EnableViewState="true" ...

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月19日 2:00
    版主
  • 您好,您的代码有访问的逻辑问题。
    因pageload方法总是在buttonclick之前。请用1987raymond版主的方法,可解决。
    2009年8月19日 2:25
    版主
  • <form id="form1" runat="server">
        <asp:TextBox ID="TextBox1" runat="server" EnableViewState="true"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" OnClick="Button2_Click" Text="Button" />
    </form>
    2009年8月19日 3:34
  • protected void Page_Load(object sender, EventArgs e)
    {
        string fr = Request.QueryString["fr"];
        if (fr != null)
        {
            TextBox1.Text = fr;
            Response.Write(fr);
        }
    }
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect("test.aspx?fr=" + TextBox1.Text);
    }
    当你每次点击Button以后一定会引发一个动作,这个动作产生的结果就是先执行Page_Load事件在执行Click事件
    那么在执行PageLoad时候页面有个属性是判读是否首次加载建议如下写法,这表明实在页面首次加载的时候给TextBox1赋值一次极为fr。
    protected void Page_Load(object sender, EventArgs e) {
    if(!IspostBack)
    {
    string fr = Request.QueryString["fr"]; if (fr != null) { TextBox1.Text = fr; Response.Write(fr); }
    } }

    2009年8月19日 3:48